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

route

package
v2.9.0 Latest Latest
Warning

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

Go to latest
Published: Oct 20, 2026 License: Apache-2.0 Imports: 23 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

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 handler function wired into the route.
	Handler func(echo.Context) error
	// IncludeInOAS publishes this route in the OpenAPI specification. The
	// published surface is opt-in: only routes explicitly intended for
	// external consumers are documented, everything else stays private.
	IncludeInOAS 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 handlers.SchemaRegistry
	// SpecInstances maps qualified model type names to instances for schema reflection; populated
	// from the generated instances file, only in spec-build mode
	SpecInstances map[string]any
	// SpecTypes accumulates every model type name the analyzed handlers need, used by the instance
	// emitter and to detect missing instances after registration
	SpecTypes map[string]bool
}

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) AddUnversionedHandlerRoute

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

AddUnversionedHandlerRoute adds a route to the base group and, in spec-build mode, its derived operation

func (*Router) AddV1HandlerRoute

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

AddV1HandlerRoute adds a route to the v1 group and, in spec-build mode, its derived operation

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

Jump to

Keyboard shortcuts

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