Help us shape the future of Go! Take the 2026 Go Developer Survey

route

package
v1.27.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2026 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Overview

Package route will hold the routes and route groups

Index

Constants

This section is empty.

Variables

View Source
var ErrAuthenticationRequired = errors.New("authentication required")

Functions

func RegisterRoutes

func RegisterRoutes(router *Router) error

RegisterRoutes with the echo routers - Router is defined within openapi.go

Types

type Config added in v0.25.0

type Config struct {
	// Path is the route path pattern.
	Path string
	// Method is the HTTP method for the route.
	Method string
	// Name is the OpenAPI summary for the route.
	Name string
	// Description is the OpenAPI description for the route.
	Description string
	// Tags are the OpenAPI tags for grouping.
	Tags []string
	// OperationID is the OpenAPI operation ID.
	OperationID string
	// Security defines OpenAPI security requirements for the route.
	Security *openapi3.SecurityRequirements
	// Middlewares are applied before the handler.
	Middlewares []echo.MiddlewareFunc
	// RateLimit applies a dedicated per-route rate limiter ahead of the route middleware when set and enabled.
	RateLimit *ratelimit.Config
	// Handler is the OpenAPI-aware handler function.
	Handler func(echo.Context, *handlers.OpenAPIContext) error
	// SimpleHandler is used for routes without OpenAPI context.
	SimpleHandler func(echo.Context) error // For handlers that don't need OpenAPI context
	// ExcludeFromOAS skips publishing this route in the OpenAPI specification.
	ExcludeFromOAS bool
	// PublicCORS serves the route with a wildcard, credential-less CORS policy, for fully public
	// token-authorized endpoints called cross-origin from arbitrary domains (e.g. trust centers);
	// only supported for static paths (no path parameters)
	PublicCORS bool
}

Config holds the configuration for a route with automatic OpenAPI registration

type Router

type Router struct {
	// Echo is the underlying Echo router instance.
	Echo *echo.Echo
	// OAS is the OpenAPI spec being assembled.
	OAS *openapi3.T
	// Handler provides the HTTP handlers wired into routes.
	Handler *handlers.Handler
	// StartConfig holds Echo start configuration.
	StartConfig *echo.StartConfig
	// LocalFilePath points to static file roots for local assets.
	LocalFilePath string
	// Logger is the Echo logger used by the router.
	Logger *echo.Logger
	// SchemaRegistry registers and resolves OpenAPI schemas.
	SchemaRegistry SchemaRegistry
}

Router is a struct that holds the echo router, the OpenAPI schema, and the handler - it's a way to group these components together

func (*Router) AddEchoOnlyRoute

func (r *Router) AddEchoOnlyRoute(route echo.Routable) error

AddEchoOnlyRoute is used to add a route to the echo router without adding it to the OpenAPI schema

func (*Router) AddGraphQLToOpenAPI added in v0.30.12

func (r *Router) AddGraphQLToOpenAPI()

AddGraphQLToOpenAPI adds the GraphQL endpoint to the OpenAPI specification

func (*Router) AddRoute

func (r *Router) AddRoute(pattern, method string, op *openapi3.Operation, route echo.Routable) error

AddRoute is used to add a route to the echo router and OpenAPI schema at the same time ensuring consistency between the spec and the server

func (*Router) AddUnversionedHandlerRoute added in v0.25.0

func (r *Router) AddUnversionedHandlerRoute(config Config) error

AddUnversionedHandlerRoute adds an unversioned route with automatic OpenAPI context injection

func (*Router) AddUnversionedRoute

func (r *Router) AddUnversionedRoute(pattern, method string, op *openapi3.Operation, route echo.Routable) error

AddUnversionedRoute is used to add a versioned route to the echo router and OpenAPI schema at the same time ensuring consistency between the spec and the server

func (*Router) AddV1HandlerRoute added in v0.25.0

func (r *Router) AddV1HandlerRoute(config Config) error

AddV1HandlerRoute adds a route with automatic OpenAPI context injection

func (*Router) AddV1Route added in v0.12.2

func (r *Router) AddV1Route(pattern, method string, op *openapi3.Operation, route echo.Routable) error

AddV1Route is used to add a route to the echo router and OpenAPI schema at the same time ensuring consistency between the spec and the server for version 1 routes of the api

func (*Router) Base

func (r *Router) Base() *echo.Group

Base returns the base echo group - no "version" prefix for the router group

func (*Router) VersionOne

func (r *Router) VersionOne() *echo.Group

VersionOne returns a new echo group for version 1 of the API

func (*Router) VersionTwo

func (r *Router) VersionTwo() *echo.Group

VersionTwo returns a new echo group for version 2 of the API - lets anticipate the future

type RouterOption added in v0.3.0

type RouterOption func(*Router)

RouterOption is an option function that can be used to configure the router

func WithEcho added in v0.3.0

func WithEcho(e *echo.Echo) RouterOption

WithEcho is a RouterOption that allows the echo router to be set on the router

func WithHandler added in v0.3.0

func WithHandler(h *handlers.Handler) RouterOption

WithHandler is a RouterOption that allows the handler to be set on the router

func WithHideBanner added in v0.3.0

func WithHideBanner() RouterOption

WithHideBanner is a RouterOption that allows the banner to be hidden on the echo server

func WithLocalFiles added in v0.6.10

func WithLocalFiles(lf string) RouterOption

WithLocalFiles is a RouterOption that allows the local files to be set on the router

func WithLogger added in v0.8.6

func WithLogger(logger *echo.Logger) RouterOption

WithLogger is a RouterOption that allows the logger to be set on the router

func WithOpenAPI added in v0.3.0

func WithOpenAPI(oas *openapi3.T) RouterOption

WithOpenAPI is a RouterOption that allows the OpenAPI schema to be set on the router

func WithOptions added in v0.3.0

func WithOptions(opts ...RouterOption) RouterOption

WithOptions is a RouterOption that allows multiple options to be set on the router

type SchemaRegistry added in v0.25.0

type SchemaRegistry interface {
	RegisterType(v any) (*openapi3.SchemaRef, error)
	GetOrRegister(v any) (*openapi3.SchemaRef, error)
}

SchemaRegistry interface for dynamic schema registration

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL