Documentation
¶
Index ¶
- Constants
- Variables
- func ActivateRegistryContainer(c *RegistryContainer)
- func AddSwaggerModelType[T any](r *SwaggerModelRegistry)
- func ClearEnumRegistry()
- func ClearGlobalHook()
- func ClearOperationIDHook()
- func ClearOperationIDTagPrefix()
- func ClearSchemaNameRegistry()
- func ClearTypeRules()
- func IgnoreAutoGroupHandlers() di.Option
- func Init() di.Node
- func Module(extends ...di.Node) di.Node
- func NewFiberApp(config FiberConfig) *fiber.App
- func NewFiberAppWithOptions(config FiberConfig, opts ...FiberAppOption) *fiber.App
- func NewRegistryLifecycle(reg *RegistryContainer) *registryLifecycle
- func NopOtelMiddleware() di.Node
- func ParseBodyLimit(v string) (int, error)
- func ParseTLSMinVersion(v string) (uint16, error)
- func Priority(value PriorityLevel) di.Option
- func RegisterEnum[T any](values ...T)
- func RegisterFiberApp(lc fx.Lifecycle, app *fiber.App, logger *zap.Logger, config Config)
- func RegisterGlobalHook(hook HookFunc)
- func RegisterOperationIDHook(hook OperationIDHook)
- func RegisterOperationIDTagPrefix(separator string)
- func RegisterSchemaName[T any](name string)
- func RegisterSchemaNameForModel(model any, name string)
- func ReplaceType[From any, To any]()
- func ResetDefaultRegistryContainer()
- func SetupHandlers(in setupHandlersIn)
- func SkipType[T any]()
- func UseAutoSwagger(opts ...SwaggerOption) di.Node
- func UseBuildInfo(opts ...BuildInfoOption) di.Node
- func UseSpa(opts ...SpaOption) di.Node
- func UseSwagger(opts ...SwaggerOption) di.Node
- type AutoSwaggerComponents
- type AutoSwaggerContact
- type AutoSwaggerInfo
- type AutoSwaggerLicense
- type AutoSwaggerMiddleware
- type AutoSwaggerSpec
- func BuildOpenAPISpec(routes []RouteInfo, config Config) *AutoSwaggerSpec
- func BuildOpenAPISpecWithOptions(routes []RouteInfo, config Config, opts OpenAPIBuildOptions) *AutoSwaggerSpec
- func BuildOpenAPISpecWithRegistry(routes []RouteInfo, config Config, registry *MetadataRegistry) *AutoSwaggerSpec
- func BuildOpenAPISpecWithSecurity(routes []RouteInfo, config Config, securitySchemes map[string]interface{}, ...) *AutoSwaggerSpec
- func BuildOpenAPISpecWithSecuritySchemes(routes []RouteInfo, config Config, securitySchemes map[string]interface{}) *AutoSwaggerSpec
- type AutoSwaggerTag
- type BuildInfoHandler
- type BuildInfoOption
- type Config
- type DateQuery
- type Error
- type ErrorDetail
- type FiberAppConfig
- type FiberAppOption
- type FiberConfig
- type FiberProxyConfig
- type Handler
- type HookFunc
- type ListenConfig
- type MetadataRegistry
- type MockHandler
- type MockHandler_Expecter
- type MockHandler_Handle_Call
- type OpenAPIBuildOptions
- type OpenAPIErrorResponse
- type OperationIDHook
- type OperationIDHookContext
- type OtelMiddleware
- type PageQuery
- type PagedMeta
- type PagedResponse
- type PaginationMetadata
- type ParameterMetadata
- type PriorityLevel
- type RegistryContainer
- type RequestBodyMetadata
- type Response
- type ResponseHeaderMetadata
- type ResponseMetadata
- type RouteBuilder
- func (b *RouteBuilder) Accepted(responseType any, description ...string) *RouteBuilder
- func (b *RouteBuilder) Apply(opts ...RouteOption) *RouteBuilder
- func (b *RouteBuilder) AtLeastOneBodyField() *RouteBuilder
- func (b *RouteBuilder) BadRequest(responseType any, description ...string) *RouteBuilder
- func (b *RouteBuilder) Body(requestType any) *RouteBuilder
- func (b *RouteBuilder) BodyAs(requestType any, contentTypes ...string) *RouteBuilder
- func (b *RouteBuilder) BodyAsAtLeastOne(requestType any, contentTypes ...string) *RouteBuilder
- func (b *RouteBuilder) BodyAsOptional(requestType any, contentTypes ...string) *RouteBuilder
- func (b *RouteBuilder) BodyAtLeastOne(requestType any) *RouteBuilder
- func (b *RouteBuilder) BodyOptional(requestType any) *RouteBuilder
- func (b *RouteBuilder) Conflict(responseType any, description ...string) *RouteBuilder
- func (b *RouteBuilder) Cookie(name string, paramType any, description ...string) *RouteBuilder
- func (b *RouteBuilder) CookieExt(name string, paramType any, extensions string, description ...string) *RouteBuilder
- func (b *RouteBuilder) CookieRequired(name string, paramType any, description ...string) *RouteBuilder
- func (b *RouteBuilder) CookieRequiredExt(name string, paramType any, extensions string, description ...string) *RouteBuilder
- func (b *RouteBuilder) Cookies(values map[string]any) *RouteBuilder
- func (b *RouteBuilder) CookiesRequired(values map[string]any) *RouteBuilder
- func (b *RouteBuilder) Create(responseType any, description ...string) *RouteBuilder
- func (b *RouteBuilder) Description(description string) *RouteBuilder
- func (b *RouteBuilder) Forbidden(responseType any, description ...string) *RouteBuilder
- func (b *RouteBuilder) Form(requestType any) *RouteBuilder
- func (b *RouteBuilder) FormOptional(requestType any) *RouteBuilder
- func (b *RouteBuilder) Header(name string, paramType any, description ...string) *RouteBuilder
- func (b *RouteBuilder) HeaderExt(name string, paramType any, extensions string, description ...string) *RouteBuilder
- func (b *RouteBuilder) HeaderRequired(name string, paramType any, description ...string) *RouteBuilder
- func (b *RouteBuilder) HeaderRequiredExt(name string, paramType any, extensions string, description ...string) *RouteBuilder
- func (b *RouteBuilder) Headers(values map[string]any) *RouteBuilder
- func (b *RouteBuilder) HeadersRequired(values map[string]any) *RouteBuilder
- func (b *RouteBuilder) InternalError(responseType any, description ...string) *RouteBuilder
- func (b *RouteBuilder) Multipart(requestType any) *RouteBuilder
- func (b *RouteBuilder) MultipartOptional(requestType any) *RouteBuilder
- func (b *RouteBuilder) Name(name string) *RouteBuilder
- func (b *RouteBuilder) NameWithTagPrefix(name string) *RouteBuilder
- func (b *RouteBuilder) NoContent(statusCode int) *RouteBuilder
- func (b *RouteBuilder) NotFound(responseType any, description ...string) *RouteBuilder
- func (b *RouteBuilder) Ok(responseType any, description ...string) *RouteBuilder
- func (b *RouteBuilder) Paginated(itemType any) *RouteBuilder
- func (b *RouteBuilder) Policies(policies ...string) *RouteBuilder
- func (b *RouteBuilder) Produces(responseType any, statusCode int) *RouteBuilder
- func (b *RouteBuilder) ProducesAs(responseType any, statusCode int, contentType string) *RouteBuilder
- func (b *RouteBuilder) ProducesWithDescription(responseType any, statusCode int, description string) *RouteBuilder
- func (b *RouteBuilder) ProducesWithExample(example any, statusCode int) *RouteBuilder
- func (b *RouteBuilder) Public() *RouteBuilder
- func (b *RouteBuilder) Query(queryType any) *RouteBuilder
- func (b *RouteBuilder) Scopes(scheme string, scopes ...string) *RouteBuilder
- func (b *RouteBuilder) Security(scheme string) *RouteBuilder
- func (b *RouteBuilder) SetCookies(statusCode int, cookieName string, description ...string) *RouteBuilder
- func (b *RouteBuilder) SetHeaders(statusCode int, name string, valueType any, description ...string) *RouteBuilder
- func (b *RouteBuilder) StandardErrors() *RouteBuilder
- func (b *RouteBuilder) Summary(summary string) *RouteBuilder
- func (b *RouteBuilder) Tags(tags ...string) *RouteBuilder
- func (b *RouteBuilder) Unauthorized(responseType any, description ...string) *RouteBuilder
- func (b *RouteBuilder) UnprocessableEntity(responseType any, description ...string) *RouteBuilder
- func (b *RouteBuilder) ValidationErrors() *RouteBuilder
- type RouteInfo
- type RouteMetadata
- type RouteOption
- func Accepted[T any](description ...string) RouteOption
- func BadRequest[T any](description ...string) RouteOption
- func Body(requestType any) RouteOption
- func BodyAtLeastOne(requestType any) RouteOption
- func BodyOptional(requestType any) RouteOption
- func Conflict[T any](description ...string) RouteOption
- func Cookie(name string, valueType any, description ...string) RouteOption
- func CookieExt(name string, valueType any, extensions string, description ...string) RouteOption
- func CookieRequired(name string, valueType any, description ...string) RouteOption
- func CookieRequiredExt(name string, valueType any, extensions string, description ...string) RouteOption
- func Cookies(values map[string]any) RouteOption
- func CookiesRequired(values map[string]any) RouteOption
- func Create[T any](description ...string) RouteOption
- func Description(description string) RouteOption
- func Forbidden[T any](description ...string) RouteOption
- func Form(requestType any) RouteOption
- func FormOptional(requestType any) RouteOption
- func Header(name string, valueType any, description ...string) RouteOption
- func HeaderExt(name string, valueType any, extensions string, description ...string) RouteOption
- func HeaderRequired(name string, valueType any, description ...string) RouteOption
- func HeaderRequiredExt(name string, valueType any, extensions string, description ...string) RouteOption
- func Headers(values map[string]any) RouteOption
- func HeadersRequired(values map[string]any) RouteOption
- func InternalError[T any](description ...string) RouteOption
- func Multipart(requestType any) RouteOption
- func MultipartOptional(requestType any) RouteOption
- func Name(name string) RouteOption
- func NameWithTagPrefix(name string) RouteOption
- func NotFound[T any](description ...string) RouteOption
- func Ok[T any](description ...string) RouteOption
- func Produce[T any](statusCode ...int) RouteOption
- func ProduceAs[T any](statusCode int, contentType string) RouteOption
- func ProduceWithDescription[T any](statusCode int, description string) RouteOption
- func Query[T any]() RouteOption
- func SetCookies(statusCode int, cookieName string, description ...string) RouteOption
- func SetHeaders(statusCode int, name string, valueType any, description ...string) RouteOption
- func Summary(summary string) RouteOption
- func Tag(tag string) RouteOption
- func Tags(tags ...string) RouteOption
- func Unauthorized[T any](description ...string) RouteOption
- func UnprocessableEntity[T any](description ...string) RouteOption
- type Router
- type SchemaExtractor
- type SecurityRequirement
- type ServerConfig
- type SpaMiddleware
- type SpaOption
- type SwaggerContext
- func (c *SwaggerContext) AddParameter(parameter ParameterMetadata)
- func (c *SwaggerContext) AddTag(tags ...string)
- func (c *SwaggerContext) RouteModelPackageName() string
- func (c *SwaggerContext) RouteModelPackagePath() string
- func (c *SwaggerContext) RouteModelType() reflect.Type
- func (c *SwaggerContext) SetDescription(description string)
- func (c *SwaggerContext) SetOperationField(key string, value any)
- func (c *SwaggerContext) SetOperationID(operationID string)
- func (c *SwaggerContext) SetRequestBody(model any, required bool, contentTypes ...string)
- func (c *SwaggerContext) SetResponse(statusCode int, model any, description string)
- func (c *SwaggerContext) SetSummary(summary string)
- type SwaggerCustomizeFunc
- type SwaggerCustomizer
- type SwaggerMiddleware
- type SwaggerModelRegistry
- type SwaggerOption
- func RegisterHook(hook ...HookFunc) SwaggerOption
- func WithAPIContact(name, url, email string) SwaggerOption
- func WithAPIKeySecurityScheme(name, keyName, in string) SwaggerOption
- func WithAPILicense(name, url string) SwaggerOption
- func WithAPITermsOfService(url string) SwaggerOption
- func WithBearerSecurityScheme(name string) SwaggerOption
- func WithDefaultSecurity(scheme string, scopes ...string) SwaggerOption
- func WithSwaggerConfig(config Config) SwaggerOption
- func WithSwaggerCustomize(hook HookFunc) SwaggerOption
- func WithSwaggerExtraModels(models ...any) SwaggerOption
- func WithSwaggerPath(path string) SwaggerOption
- func WithTagDescription(name, description string) SwaggerOption
- type SwaggerPostRun
- type SwaggerPreRun
- type TLSConfig
Constants ¶
const ( Earliest = di.Earliest Earlier = di.Earlier Normal = di.Normal Later = di.Later Latest = di.Latest )
const DefaultSpaDistPath = "web/dist"
const SwaggerCustomizersGroupName = "web.swagger.customizers"
SwaggerCustomizersGroupName is the DI group used for SwaggerCustomizer implementations.
const SwaggerPostCustomizersGroupName = "web.swagger.customizers.post"
const SwaggerPreCustomizersGroupName = "web.swagger.customizers.pre"
Variables ¶
var HandlersGroupName = "us.handlers"
Functions ¶
func ActivateRegistryContainer ¶ added in v1.12.0
func ActivateRegistryContainer(c *RegistryContainer)
ActivateRegistryContainer swaps package-level registry pointers to this container.
func AddSwaggerModelType ¶ added in v1.12.0
func AddSwaggerModelType[T any](r *SwaggerModelRegistry)
AddSwaggerModelType registers model type T in the provided registry.
func ClearEnumRegistry ¶ added in v1.12.0
func ClearEnumRegistry()
ClearEnumRegistry removes all registered enum values. Primarily useful for tests.
func ClearGlobalHook ¶ added in v1.12.0
func ClearGlobalHook()
ClearGlobalHook removes the registered global metadata hook.
func ClearOperationIDHook ¶ added in v1.12.0
func ClearOperationIDHook()
ClearOperationIDHook clears the registered operationId hook.
func ClearOperationIDTagPrefix ¶ added in v1.12.0
func ClearOperationIDTagPrefix()
ClearOperationIDTagPrefix disables global operationId tag prefixing.
func ClearSchemaNameRegistry ¶ added in v1.12.0
func ClearSchemaNameRegistry()
ClearSchemaNameRegistry removes all schema name overrides. Primarily useful for tests.
func ClearTypeRules ¶ added in v1.12.0
func ClearTypeRules()
ClearTypeRules clears all replace/skip rules. Primarily useful for tests.
func IgnoreAutoGroupHandlers ¶ added in v1.12.0
func NewFiberApp ¶
func NewFiberApp(config FiberConfig) *fiber.App
func NewFiberAppWithOptions ¶ added in v1.9.2
func NewFiberAppWithOptions(config FiberConfig, opts ...FiberAppOption) *fiber.App
func NewRegistryLifecycle ¶ added in v1.12.0
func NewRegistryLifecycle(reg *RegistryContainer) *registryLifecycle
func NopOtelMiddleware ¶
func ParseBodyLimit ¶ added in v1.9.2
func ParseTLSMinVersion ¶ added in v1.9.2
func Priority ¶
func Priority(value PriorityLevel) di.Option
func RegisterEnum ¶ added in v1.12.0
func RegisterEnum[T any](values ...T)
RegisterEnum registers enum values for a Go type so schemas can emit OpenAPI enum constraints. Usage: RegisterEnum(StatusActive, StatusInactive)
func RegisterFiberApp ¶
func RegisterGlobalHook ¶ added in v1.12.0
func RegisterGlobalHook(hook HookFunc)
RegisterGlobalHook registers a global metadata hook used during OpenAPI generation. The hook can mutate any RouteMetadata fields (operationId, tags, request body, responses, etc).
func RegisterOperationIDHook ¶ added in v1.12.0
func RegisterOperationIDHook(hook OperationIDHook)
RegisterOperationIDHook registers a global hook to customize operationId.
func RegisterOperationIDTagPrefix ¶ added in v1.12.0
func RegisterOperationIDTagPrefix(separator string)
RegisterOperationIDTagPrefix enables global operationId prefixing with first operation tag. Example: Users_GetUserByID.
func RegisterSchemaName ¶ added in v1.12.0
RegisterSchemaName overrides the OpenAPI component schema name for type T. Usage: RegisterSchemaName[MyType]("User")
func RegisterSchemaNameForModel ¶ added in v1.12.0
RegisterSchemaNameForModel overrides the OpenAPI component schema name for a model value/type. model can be a value, pointer, or reflect.Type.
func ReplaceType ¶ added in v1.12.0
ReplaceType maps a source type to another type for OpenAPI generation. Example: ReplaceType[sql.NullInt64, int64]()
func ResetDefaultRegistryContainer ¶ added in v1.12.0
func ResetDefaultRegistryContainer()
ResetDefaultRegistryContainer restores package-level registries to fresh defaults.
func SetupHandlers ¶
func SetupHandlers(in setupHandlersIn)
func SkipType ¶ added in v1.12.0
func SkipType[T any]()
SkipType excludes type T from generated schema fields and parameters.
func UseAutoSwagger ¶ added in v1.12.0
func UseAutoSwagger(opts ...SwaggerOption) di.Node
UseAutoSwagger enables automatic Swagger documentation generation This inspects all registered routes at runtime and generates an OpenAPI spec
func UseBuildInfo ¶
func UseBuildInfo(opts ...BuildInfoOption) di.Node
func UseSwagger ¶
func UseSwagger(opts ...SwaggerOption) di.Node
Types ¶
type AutoSwaggerComponents ¶ added in v1.12.0
type AutoSwaggerContact ¶ added in v1.12.0
type AutoSwaggerInfo ¶ added in v1.12.0
type AutoSwaggerInfo struct {
Title string `json:"title"`
Description string `json:"description"`
Version string `json:"version"`
TermsOfService string `json:"termsOfService,omitempty"`
Contact *AutoSwaggerContact `json:"contact,omitempty"`
License *AutoSwaggerLicense `json:"license,omitempty"`
}
type AutoSwaggerLicense ¶ added in v1.12.0
type AutoSwaggerMiddleware ¶ added in v1.12.0
type AutoSwaggerMiddleware struct {
// contains filtered or unexported fields
}
AutoSwaggerMiddleware provides runtime OpenAPI spec generation
func (*AutoSwaggerMiddleware) Handle ¶ added in v1.12.0
func (m *AutoSwaggerMiddleware) Handle(r fiber.Router)
Handle registers the auto-swagger routes
type AutoSwaggerSpec ¶ added in v1.12.0
type AutoSwaggerSpec struct {
OpenAPI string `json:"openapi"`
Info AutoSwaggerInfo `json:"info"`
Paths map[string]map[string]interface{} `json:"paths"`
Security []map[string][]string `json:"security,omitempty"`
Tags []AutoSwaggerTag `json:"tags,omitempty"`
Components *AutoSwaggerComponents `json:"components,omitempty"`
}
AutoSwaggerSpec represents a runtime-generated OpenAPI specification
func BuildOpenAPISpec ¶ added in v1.12.0
func BuildOpenAPISpec(routes []RouteInfo, config Config) *AutoSwaggerSpec
BuildOpenAPISpec generates an OpenAPI 3.0 spec from route information
func BuildOpenAPISpecWithOptions ¶ added in v1.12.0
func BuildOpenAPISpecWithOptions(routes []RouteInfo, config Config, opts OpenAPIBuildOptions) *AutoSwaggerSpec
BuildOpenAPISpecWithOptions generates an OpenAPI spec with extended metadata options.
func BuildOpenAPISpecWithRegistry ¶ added in v1.12.0
func BuildOpenAPISpecWithRegistry(routes []RouteInfo, config Config, registry *MetadataRegistry) *AutoSwaggerSpec
BuildOpenAPISpecWithRegistry generates an OpenAPI spec using a specific metadata registry.
func BuildOpenAPISpecWithSecurity ¶ added in v1.12.0
func BuildOpenAPISpecWithSecurity(routes []RouteInfo, config Config, securitySchemes map[string]interface{}, defaultSecurity []SecurityRequirement) *AutoSwaggerSpec
BuildOpenAPISpecWithSecurity generates an OpenAPI spec with optional global security schemes and default security requirements.
func BuildOpenAPISpecWithSecuritySchemes ¶ added in v1.12.0
func BuildOpenAPISpecWithSecuritySchemes(routes []RouteInfo, config Config, securitySchemes map[string]interface{}) *AutoSwaggerSpec
BuildOpenAPISpecWithSecuritySchemes generates an OpenAPI spec with optional global security schemes.
type AutoSwaggerTag ¶ added in v1.12.0
type BuildInfoHandler ¶
func NewBuildInfoHandler ¶
func NewBuildInfoHandler(opts ...BuildInfoOption) *BuildInfoHandler
type BuildInfoOption ¶
func WithDefaultPath ¶
func WithDefaultPath(path ...string) BuildInfoOption
type Config ¶
type Config struct {
Name string `mapstructure:"name" default:"Ultrastructure API"`
Server ServerConfig `mapstructure:"server"`
Listen ListenConfig `mapstructure:"listen"`
TLS TLSConfig `mapstructure:"tls"`
}
type Error ¶
type Error struct {
Error ErrorDetail `json:"error"`
RequestID string `json:"request_id"`
}
type ErrorDetail ¶
type FiberAppConfig ¶ added in v1.9.2
type FiberAppConfig struct {
ServerHeader string `mapstructure:"server_header"`
BodyLimit string `mapstructure:"body_limit" default:"4MiB"`
ReadTimeout time.Duration `mapstructure:"read_timeout" default:"10s"`
WriteTimeout time.Duration `mapstructure:"write_timeout" default:"10s"`
IdleTimeout time.Duration `mapstructure:"idle_timeout" default:"60s"`
ReadBufferSize int `mapstructure:"read_buffer_size" default:"4096"`
WriteBufferSize int `mapstructure:"write_buffer_size" default:"4096"`
DisableKeepalive bool `mapstructure:"disable_keepalive" default:"false"`
EnableIPValidation bool `mapstructure:"enable_ip_validation" default:"true"`
}
type FiberAppOption ¶ added in v1.9.2
type FiberAppOption interface {
// contains filtered or unexported methods
}
func WithName ¶ added in v1.9.2
func WithName(name string) FiberAppOption
type FiberConfig ¶
type FiberConfig struct {
App FiberAppConfig `mapstructure:"app"`
Proxy FiberProxyConfig `mapstructure:"proxy"`
CaseSensitive bool `mapstructure:"case_sensitive" default:"false"`
StrictRouting bool `mapstructure:"strict_routing" default:"false"`
}
type FiberProxyConfig ¶ added in v1.9.2
type FiberProxyConfig struct {
TrustProxy bool `mapstructure:"trust_proxy" default:"false"`
ProxyHeader string `mapstructure:"proxy_header"`
TrustProxyConfig fiber.TrustProxyConfig `mapstructure:"trust_proxy_config"`
}
type HookFunc ¶ added in v1.12.0
type HookFunc func(ctx *SwaggerContext)
HookFunc mutates route metadata before operation generation.
type ListenConfig ¶ added in v1.9.2
type ListenConfig struct {
ListenerNetwork string `mapstructure:"listener_network" default:"tcp"`
ShutdownTimeout time.Duration `mapstructure:"shutdown_timeout" default:"10s"`
DisableStartupMessage bool `mapstructure:"disable_startup_message" default:"false"`
EnablePrefork bool `mapstructure:"enable_prefork" default:"false"`
EnablePrintRoutes bool `mapstructure:"enable_print_routes" default:"false"`
}
type MetadataRegistry ¶ added in v1.12.0
type MetadataRegistry struct {
// contains filtered or unexported fields
}
MetadataRegistry stores metadata for all routes
func GetGlobalRegistry ¶ added in v1.12.0
func GetGlobalRegistry() *MetadataRegistry
GetGlobalRegistry returns the global metadata registry
func (*MetadataRegistry) AllRoutes ¶ added in v1.12.0
func (r *MetadataRegistry) AllRoutes() map[string]*RouteMetadata
AllRoutes returns all registered route metadata
func (*MetadataRegistry) Clear ¶ added in v1.12.0
func (r *MetadataRegistry) Clear()
Clear removes all registered routes (useful for testing)
func (*MetadataRegistry) GetRoute ¶ added in v1.12.0
func (r *MetadataRegistry) GetRoute(method, path string) *RouteMetadata
GetRoute retrieves metadata for a route
func (*MetadataRegistry) RegisterRoute ¶ added in v1.12.0
func (r *MetadataRegistry) RegisterRoute(method, path string, metadata *RouteMetadata)
RegisterRoute stores metadata for a route
type MockHandler ¶ added in v1.2.0
MockHandler is an autogenerated mock type for the Handler type
func NewMockHandler ¶ added in v1.2.0
func NewMockHandler(t interface {
mock.TestingT
Cleanup(func())
}) *MockHandler
NewMockHandler creates a new instance of MockHandler. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. The first argument is typically a *testing.T value.
func (*MockHandler) EXPECT ¶ added in v1.2.0
func (_m *MockHandler) EXPECT() *MockHandler_Expecter
func (*MockHandler) Handle ¶ added in v1.2.0
func (_mock *MockHandler) Handle(r fiber.Router)
Handle provides a mock function for the type MockHandler
type MockHandler_Expecter ¶ added in v1.2.0
type MockHandler_Expecter struct {
// contains filtered or unexported fields
}
func (*MockHandler_Expecter) Handle ¶ added in v1.2.0
func (_e *MockHandler_Expecter) Handle(r interface{}) *MockHandler_Handle_Call
Handle is a helper method to define mock.On call
- r fiber.Router
type MockHandler_Handle_Call ¶ added in v1.2.0
MockHandler_Handle_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Handle'
func (*MockHandler_Handle_Call) Return ¶ added in v1.2.0
func (_c *MockHandler_Handle_Call) Return() *MockHandler_Handle_Call
func (*MockHandler_Handle_Call) Run ¶ added in v1.2.0
func (_c *MockHandler_Handle_Call) Run(run func(r fiber.Router)) *MockHandler_Handle_Call
func (*MockHandler_Handle_Call) RunAndReturn ¶ added in v1.2.0
func (_c *MockHandler_Handle_Call) RunAndReturn(run func(r fiber.Router)) *MockHandler_Handle_Call
type OpenAPIBuildOptions ¶ added in v1.12.0
type OpenAPIBuildOptions struct {
SecuritySchemes map[string]interface{}
DefaultSecurity []SecurityRequirement
TagDescriptions map[string]string
TermsOfService string
Contact *AutoSwaggerContact
License *AutoSwaggerLicense
PreHook HookFunc
Hook HookFunc
PostHook HookFunc
ExtraModels []reflect.Type
}
type OpenAPIErrorResponse ¶ added in v1.12.0
type OpenAPIErrorResponse struct {
Error string `json:"error" example:"Internal server error"`
Code string `json:"code,omitempty" example:"INTERNAL_ERROR"`
Message string `json:"message,omitempty" example:"An unexpected error occurred"`
}
OpenAPIErrorResponse is the default schema used by error response presets.
type OperationIDHook ¶ added in v1.12.0
type OperationIDHook func(ctx OperationIDHookContext) string
OperationIDHook allows custom global operationId transformation.
type OperationIDHookContext ¶ added in v1.12.0
type OperationIDHookContext struct {
Route RouteInfo
Metadata *RouteMetadata
Tags []string
OperationID string
Generated bool
}
OperationIDHookContext contains the current route context for operationId customization.
type OtelMiddleware ¶
func NewOtelMiddleware ¶
func NewOtelMiddleware(config otel.Config, lp *otel.LoggerProvider) *OtelMiddleware
func (*OtelMiddleware) Handle ¶
func (h *OtelMiddleware) Handle(r fiber.Router)
func (*OtelMiddleware) WrapObserver ¶ added in v1.12.0
func (h *OtelMiddleware) WrapObserver(c fiber.Ctx) error
type PagedResponse ¶
type PaginationMetadata ¶ added in v1.12.0
PaginationMetadata stores automatic pagination documentation settings.
type ParameterMetadata ¶ added in v1.12.0
type ParameterMetadata struct {
Name string
In string // query, header, cookie
Type reflect.Type
Required bool
Description string
Extensions string // e.g. "x-nullable,x-owner=team,!x-omitempty"
}
ParameterMetadata stores header/cookie/query parameter schema metadata.
type PriorityLevel ¶
type PriorityLevel = di.PriorityLevel
func Between ¶
func Between(lower, upper PriorityLevel) PriorityLevel
type RegistryContainer ¶ added in v1.12.0
type RegistryContainer struct {
Metadata *MetadataRegistry
Enum *enumRegistryState
SchemaName *schemaNameRegistryState
TypeRules *typeRulesRegistryState
Hook *hookRegistryState
OperationIDHook *operationIDHookRegistryState
OperationIDMode *operationIDRegistryState
}
RegistryContainer groups all mutable runtime registries used by autoswagger/web metadata. It is DI-provided and activated by web.Module lifecycle.
func NewRegistryContainer ¶ added in v1.12.0
func NewRegistryContainer() *RegistryContainer
NewRegistryContainer creates a fresh registry set.
type RequestBodyMetadata ¶ added in v1.12.0
type RequestBodyMetadata struct {
Type reflect.Type
Required bool
ContentTypes []string
RequireAtLeastOne bool
}
RequestBodyMetadata stores request body schema metadata.
type ResponseHeaderMetadata ¶ added in v1.12.0
ResponseHeaderMetadata stores OpenAPI response header schema metadata.
type ResponseMetadata ¶ added in v1.12.0
type ResponseMetadata struct {
Type reflect.Type
ContentType string
NoContent bool
Description string
Headers map[string]ResponseHeaderMetadata
}
ResponseMetadata stores response schema metadata for a status code.
type RouteBuilder ¶ added in v1.12.0
type RouteBuilder struct {
// contains filtered or unexported fields
}
RouteBuilder provides fluent API for route metadata configuration
func (*RouteBuilder) Accepted ¶ added in v1.12.0
func (b *RouteBuilder) Accepted(responseType any, description ...string) *RouteBuilder
Accepted sets a 202 response schema.
func (*RouteBuilder) Apply ¶ added in v1.12.0
func (b *RouteBuilder) Apply(opts ...RouteOption) *RouteBuilder
Apply applies reusable route options in order.
func (*RouteBuilder) AtLeastOneBodyField ¶ added in v1.12.0
func (b *RouteBuilder) AtLeastOneBodyField() *RouteBuilder
AtLeastOneBodyField enables at-least-one-field constraint for an already configured body.
func (*RouteBuilder) BadRequest ¶ added in v1.12.0
func (b *RouteBuilder) BadRequest(responseType any, description ...string) *RouteBuilder
BadRequest sets a 400 response schema.
func (*RouteBuilder) Body ¶ added in v1.12.0
func (b *RouteBuilder) Body(requestType any) *RouteBuilder
Body sets the request body type using type inference.
Usage: .Body(CreateUserRequest{})
func (*RouteBuilder) BodyAs ¶ added in v1.12.0
func (b *RouteBuilder) BodyAs(requestType any, contentTypes ...string) *RouteBuilder
BodyAs sets the request body type and content types.
Usage: .BodyAs(CreateUserRequest{}, "application/json", "application/xml")
func (*RouteBuilder) BodyAsAtLeastOne ¶ added in v1.12.0
func (b *RouteBuilder) BodyAsAtLeastOne(requestType any, contentTypes ...string) *RouteBuilder
BodyAsAtLeastOne sets a required request body with content types and at-least-one-field constraint.
func (*RouteBuilder) BodyAsOptional ¶ added in v1.12.0
func (b *RouteBuilder) BodyAsOptional(requestType any, contentTypes ...string) *RouteBuilder
BodyAsOptional sets an optional request body type and content types.
Usage: .BodyAsOptional(SearchRequest{}, "application/json")
func (*RouteBuilder) BodyAtLeastOne ¶ added in v1.12.0
func (b *RouteBuilder) BodyAtLeastOne(requestType any) *RouteBuilder
BodyAtLeastOne sets a required request body and enforces that at least one field is present. Useful for PATCH-style DTOs with optional fields.
func (*RouteBuilder) BodyOptional ¶ added in v1.12.0
func (b *RouteBuilder) BodyOptional(requestType any) *RouteBuilder
BodyOptional sets an optional request body type.
Usage: .BodyOptional(SearchRequest{})
func (*RouteBuilder) Conflict ¶ added in v1.12.0
func (b *RouteBuilder) Conflict(responseType any, description ...string) *RouteBuilder
Conflict sets a 409 response schema.
func (*RouteBuilder) Cookie ¶ added in v1.12.0
func (b *RouteBuilder) Cookie(name string, paramType any, description ...string) *RouteBuilder
Cookie adds an optional request cookie parameter. Usage: .Cookie("session_id", "", "Session cookie")
func (*RouteBuilder) CookieExt ¶ added in v1.12.0
func (b *RouteBuilder) CookieExt(name string, paramType any, extensions string, description ...string) *RouteBuilder
CookieExt adds an optional request cookie parameter with OpenAPI extensions.
func (*RouteBuilder) CookieRequired ¶ added in v1.12.0
func (b *RouteBuilder) CookieRequired(name string, paramType any, description ...string) *RouteBuilder
CookieRequired adds a required request cookie parameter. Usage: .CookieRequired("session_id", "", "Session cookie")
func (*RouteBuilder) CookieRequiredExt ¶ added in v1.12.0
func (b *RouteBuilder) CookieRequiredExt(name string, paramType any, extensions string, description ...string) *RouteBuilder
CookieRequiredExt adds a required request cookie parameter with OpenAPI extensions.
func (*RouteBuilder) Cookies ¶ added in v1.12.0
func (b *RouteBuilder) Cookies(values map[string]any) *RouteBuilder
Cookies adds optional request cookies from name->type mappings.
func (*RouteBuilder) CookiesRequired ¶ added in v1.12.0
func (b *RouteBuilder) CookiesRequired(values map[string]any) *RouteBuilder
CookiesRequired adds required request cookies from name->type mappings.
func (*RouteBuilder) Create ¶ added in v1.12.0
func (b *RouteBuilder) Create(responseType any, description ...string) *RouteBuilder
Create sets a 201 response schema.
func (*RouteBuilder) Description ¶ added in v1.12.0
func (b *RouteBuilder) Description(description string) *RouteBuilder
Description sets the operation description.
func (*RouteBuilder) Forbidden ¶ added in v1.12.0
func (b *RouteBuilder) Forbidden(responseType any, description ...string) *RouteBuilder
Forbidden sets a 403 response schema.
func (*RouteBuilder) Form ¶ added in v1.12.0
func (b *RouteBuilder) Form(requestType any) *RouteBuilder
Form sets a required x-www-form-urlencoded request body type.
func (*RouteBuilder) FormOptional ¶ added in v1.12.0
func (b *RouteBuilder) FormOptional(requestType any) *RouteBuilder
FormOptional sets an optional x-www-form-urlencoded request body type.
func (*RouteBuilder) Header ¶ added in v1.12.0
func (b *RouteBuilder) Header(name string, paramType any, description ...string) *RouteBuilder
Header adds an optional request header parameter. Usage: .Header("X-Tenant-ID", "", "Tenant identifier")
func (*RouteBuilder) HeaderExt ¶ added in v1.12.0
func (b *RouteBuilder) HeaderExt(name string, paramType any, extensions string, description ...string) *RouteBuilder
HeaderExt adds an optional request header parameter with OpenAPI extensions. Usage: .HeaderExt("X-Tenant-ID", "", "x-nullable,x-owner=platform", "Tenant identifier")
func (*RouteBuilder) HeaderRequired ¶ added in v1.12.0
func (b *RouteBuilder) HeaderRequired(name string, paramType any, description ...string) *RouteBuilder
HeaderRequired adds a required request header parameter. Usage: .HeaderRequired("X-Tenant-ID", "", "Tenant identifier")
func (*RouteBuilder) HeaderRequiredExt ¶ added in v1.12.0
func (b *RouteBuilder) HeaderRequiredExt(name string, paramType any, extensions string, description ...string) *RouteBuilder
HeaderRequiredExt adds a required request header parameter with OpenAPI extensions.
func (*RouteBuilder) Headers ¶ added in v1.12.0
func (b *RouteBuilder) Headers(values map[string]any) *RouteBuilder
Headers adds optional request headers from name->type mappings.
func (*RouteBuilder) HeadersRequired ¶ added in v1.12.0
func (b *RouteBuilder) HeadersRequired(values map[string]any) *RouteBuilder
HeadersRequired adds required request headers from name->type mappings.
func (*RouteBuilder) InternalError ¶ added in v1.12.0
func (b *RouteBuilder) InternalError(responseType any, description ...string) *RouteBuilder
InternalError sets a 500 response schema.
func (*RouteBuilder) Multipart ¶ added in v1.12.0
func (b *RouteBuilder) Multipart(requestType any) *RouteBuilder
Multipart sets a required multipart/form-data request body type.
func (*RouteBuilder) MultipartOptional ¶ added in v1.12.0
func (b *RouteBuilder) MultipartOptional(requestType any) *RouteBuilder
MultipartOptional sets an optional multipart/form-data request body type.
func (*RouteBuilder) Name ¶ added in v1.12.0
func (b *RouteBuilder) Name(name string) *RouteBuilder
Name sets the operation ID.
func (*RouteBuilder) NameWithTagPrefix ¶ added in v1.12.0
func (b *RouteBuilder) NameWithTagPrefix(name string) *RouteBuilder
NameWithTagPrefix sets operationId prefixed by first tag, e.g. Users_GetUserByID. If no tag is available, falls back to plain Name behavior.
func (*RouteBuilder) NoContent ¶ added in v1.12.0
func (b *RouteBuilder) NoContent(statusCode int) *RouteBuilder
NoContent marks a status response as having no response body. Usage: .NoContent(204)
func (*RouteBuilder) NotFound ¶ added in v1.12.0
func (b *RouteBuilder) NotFound(responseType any, description ...string) *RouteBuilder
NotFound sets a 404 response schema.
func (*RouteBuilder) Ok ¶ added in v1.12.0
func (b *RouteBuilder) Ok(responseType any, description ...string) *RouteBuilder
Ok sets a 200 response schema.
func (*RouteBuilder) Paginated ¶ added in v1.12.0
func (b *RouteBuilder) Paginated(itemType any) *RouteBuilder
Paginated adds standard pagination query parameters and a paginated 200 response envelope. The generated response shape is: { "items": [...], "total": 123, "next_cursor": "..." }.
func (*RouteBuilder) Policies ¶ added in v1.12.0
func (b *RouteBuilder) Policies(policies ...string) *RouteBuilder
Policies adds policy names used by authz policy governance. Usage: .Policies("orders.read", "orders.write")
func (*RouteBuilder) Produces ¶ added in v1.12.0
func (b *RouteBuilder) Produces(responseType any, statusCode int) *RouteBuilder
Produces sets a response type for a status code using type inference Usage: .Produces(User{}, 200)
func (*RouteBuilder) ProducesAs ¶ added in v1.12.0
func (b *RouteBuilder) ProducesAs(responseType any, statusCode int, contentType string) *RouteBuilder
ProducesAs sets a response type and content type for a status code. Usage: .ProducesAs(string(""), 200, "text/plain")
func (*RouteBuilder) ProducesWithDescription ¶ added in v1.12.0
func (b *RouteBuilder) ProducesWithDescription(responseType any, statusCode int, description string) *RouteBuilder
ProducesWithDescription sets a response type and custom description for a status code.
func (*RouteBuilder) ProducesWithExample ¶ added in v1.12.0
func (b *RouteBuilder) ProducesWithExample(example any, statusCode int) *RouteBuilder
ProducesWithExample sets a response type with a custom example Usage: .ProducesWithExample(User{ID: "123"}, 200)
func (*RouteBuilder) Public ¶ added in v1.12.0
func (b *RouteBuilder) Public() *RouteBuilder
Public marks the route as explicitly public (no security requirements).
func (*RouteBuilder) Query ¶ added in v1.12.0
func (b *RouteBuilder) Query(queryType any) *RouteBuilder
Query sets query parameter type using struct tag inference.
Usage: .Query(ListUsersQuery{})
func (*RouteBuilder) Scopes ¶ added in v1.12.0
func (b *RouteBuilder) Scopes(scheme string, scopes ...string) *RouteBuilder
Scopes adds a security requirement with scopes. Usage: .Scopes("OAuth2", "read:users")
func (*RouteBuilder) Security ¶ added in v1.12.0
func (b *RouteBuilder) Security(scheme string) *RouteBuilder
Security adds a security requirement with no scopes. Usage: .Security("BearerAuth")
func (*RouteBuilder) SetCookies ¶ added in v1.12.0
func (b *RouteBuilder) SetCookies(statusCode int, cookieName string, description ...string) *RouteBuilder
SetCookies adds response Set-Cookie header documentation for a status code. Usage: .SetCookies(200, "session_id")
func (*RouteBuilder) SetHeaders ¶ added in v1.12.0
func (b *RouteBuilder) SetHeaders(statusCode int, name string, valueType any, description ...string) *RouteBuilder
SetHeaders adds response header documentation for a status code. Usage: .SetHeaders(201, "Location", "")
func (*RouteBuilder) StandardErrors ¶ added in v1.12.0
func (b *RouteBuilder) StandardErrors() *RouteBuilder
StandardErrors adds common error responses (400/401/403/404/500) using OpenAPIErrorResponse schema.
func (*RouteBuilder) Summary ¶ added in v1.12.0
func (b *RouteBuilder) Summary(summary string) *RouteBuilder
Summary sets the operation summary.
func (*RouteBuilder) Tags ¶ added in v1.12.0
func (b *RouteBuilder) Tags(tags ...string) *RouteBuilder
Tags sets tags for grouping in Swagger UI.
func (*RouteBuilder) Unauthorized ¶ added in v1.12.0
func (b *RouteBuilder) Unauthorized(responseType any, description ...string) *RouteBuilder
Unauthorized sets a 401 response schema.
func (*RouteBuilder) UnprocessableEntity ¶ added in v1.12.0
func (b *RouteBuilder) UnprocessableEntity(responseType any, description ...string) *RouteBuilder
UnprocessableEntity sets a 422 response schema.
func (*RouteBuilder) ValidationErrors ¶ added in v1.12.0
func (b *RouteBuilder) ValidationErrors() *RouteBuilder
ValidationErrors adds validation-focused error responses (400/422) using OpenAPIErrorResponse schema.
type RouteMetadata ¶ added in v1.12.0
type RouteMetadata struct {
OperationID string
Tags []string
Summary string
Description string
RequestBody *RequestBodyMetadata
QueryType reflect.Type
Parameters []ParameterMetadata
Security []SecurityRequirement
Policies []string
Pagination *PaginationMetadata
Responses map[int]ResponseMetadata // statusCode -> metadata
Examples map[int]interface{} // statusCode -> example
}
RouteMetadata stores OpenAPI metadata for a single route
type RouteOption ¶ added in v1.12.0
type RouteOption func(*RouteBuilder) *RouteBuilder
RouteOption applies reusable configuration to a RouteBuilder.
func Accepted ¶ added in v1.12.0
func Accepted[T any](description ...string) RouteOption
Accepted returns a RouteOption that sets a 202 response schema type T.
func BadRequest ¶ added in v1.12.0
func BadRequest[T any](description ...string) RouteOption
BadRequest returns a RouteOption that sets a 400 response schema type T.
func Body ¶ added in v1.12.0
func Body(requestType any) RouteOption
Body returns a RouteOption that sets the request body schema.
func BodyAtLeastOne ¶ added in v1.12.0
func BodyAtLeastOne(requestType any) RouteOption
BodyAtLeastOne returns a RouteOption for PATCH-like payloads where at least one field must be provided.
func BodyOptional ¶ added in v1.12.0
func BodyOptional(requestType any) RouteOption
BodyOptional returns a RouteOption that sets an optional request body schema.
func Conflict ¶ added in v1.12.0
func Conflict[T any](description ...string) RouteOption
Conflict returns a RouteOption that sets a 409 response schema type T.
func Cookie ¶ added in v1.12.0
func Cookie(name string, valueType any, description ...string) RouteOption
Cookie returns a RouteOption that adds an optional request cookie parameter.
func CookieExt ¶ added in v1.12.0
func CookieExt(name string, valueType any, extensions string, description ...string) RouteOption
CookieExt returns a RouteOption that adds an optional request cookie parameter with extensions.
func CookieRequired ¶ added in v1.12.0
func CookieRequired(name string, valueType any, description ...string) RouteOption
CookieRequired returns a RouteOption that adds a required request cookie parameter.
func CookieRequiredExt ¶ added in v1.12.0
func CookieRequiredExt(name string, valueType any, extensions string, description ...string) RouteOption
CookieRequiredExt returns a RouteOption that adds a required request cookie parameter with extensions.
func Cookies ¶ added in v1.12.0
func Cookies(values map[string]any) RouteOption
Cookies returns a RouteOption that adds optional request cookies from map name->type.
func CookiesRequired ¶ added in v1.12.0
func CookiesRequired(values map[string]any) RouteOption
CookiesRequired returns a RouteOption that adds required request cookies from map name->type.
func Create ¶ added in v1.12.0
func Create[T any](description ...string) RouteOption
Create returns a RouteOption that sets a 201 response schema type T.
func Description ¶ added in v1.12.0
func Description(description string) RouteOption
Description returns a RouteOption that sets operation description.
func Forbidden ¶ added in v1.12.0
func Forbidden[T any](description ...string) RouteOption
Forbidden returns a RouteOption that sets a 403 response schema type T.
func Form ¶ added in v1.12.0
func Form(requestType any) RouteOption
Form returns a RouteOption that sets required x-www-form-urlencoded body schema.
func FormOptional ¶ added in v1.12.0
func FormOptional(requestType any) RouteOption
FormOptional returns a RouteOption that sets optional x-www-form-urlencoded body schema.
func Header ¶ added in v1.12.0
func Header(name string, valueType any, description ...string) RouteOption
Header returns a RouteOption that adds an optional request header parameter.
func HeaderExt ¶ added in v1.12.0
func HeaderExt(name string, valueType any, extensions string, description ...string) RouteOption
HeaderExt returns a RouteOption that adds an optional request header parameter with extensions.
func HeaderRequired ¶ added in v1.12.0
func HeaderRequired(name string, valueType any, description ...string) RouteOption
HeaderRequired returns a RouteOption that adds a required request header parameter.
func HeaderRequiredExt ¶ added in v1.12.0
func HeaderRequiredExt(name string, valueType any, extensions string, description ...string) RouteOption
HeaderRequiredExt returns a RouteOption that adds a required request header parameter with extensions.
func Headers ¶ added in v1.12.0
func Headers(values map[string]any) RouteOption
Headers returns a RouteOption that adds optional request headers from map name->type.
func HeadersRequired ¶ added in v1.12.0
func HeadersRequired(values map[string]any) RouteOption
HeadersRequired returns a RouteOption that adds required request headers from map name->type.
func InternalError ¶ added in v1.12.0
func InternalError[T any](description ...string) RouteOption
InternalError returns a RouteOption that sets a 500 response schema type T.
func Multipart ¶ added in v1.12.0
func Multipart(requestType any) RouteOption
Multipart returns a RouteOption that sets required multipart/form-data body schema.
func MultipartOptional ¶ added in v1.12.0
func MultipartOptional(requestType any) RouteOption
MultipartOptional returns a RouteOption that sets optional multipart/form-data body schema.
func Name ¶ added in v1.12.0
func Name(name string) RouteOption
Name returns a RouteOption that sets operationId.
func NameWithTagPrefix ¶ added in v1.12.0
func NameWithTagPrefix(name string) RouteOption
NameWithTagPrefix returns a RouteOption that sets operationId as <firstTag>_<name>.
func NotFound ¶ added in v1.12.0
func NotFound[T any](description ...string) RouteOption
NotFound returns a RouteOption that sets a 404 response schema type T.
func Ok ¶ added in v1.12.0
func Ok[T any](description ...string) RouteOption
Ok returns a RouteOption that sets a 200 response schema type T.
func Produce ¶ added in v1.12.0
func Produce[T any](statusCode ...int) RouteOption
Produce returns a RouteOption that sets response schema type T. Default status code is 200.
func ProduceAs ¶ added in v1.12.0
func ProduceAs[T any](statusCode int, contentType string) RouteOption
ProduceAs returns a RouteOption that sets response schema type T and content type.
func ProduceWithDescription ¶ added in v1.12.0
func ProduceWithDescription[T any](statusCode int, description string) RouteOption
ProduceWithDescription returns a RouteOption that sets response schema type T with a custom response description.
func Query ¶ added in v1.12.0
func Query[T any]() RouteOption
Query returns a RouteOption that sets query parameter schema from type T.
func SetCookies ¶ added in v1.12.0
func SetCookies(statusCode int, cookieName string, description ...string) RouteOption
SetCookies returns a RouteOption that adds Set-Cookie response header documentation.
func SetHeaders ¶ added in v1.12.0
func SetHeaders(statusCode int, name string, valueType any, description ...string) RouteOption
SetHeaders returns a RouteOption that adds response header documentation.
func Summary ¶ added in v1.12.0
func Summary(summary string) RouteOption
Summary returns a RouteOption that sets operation summary.
func Tag ¶ added in v1.12.0
func Tag(tag string) RouteOption
Tag returns a RouteOption that adds one tag.
func Tags ¶ added in v1.12.0
func Tags(tags ...string) RouteOption
Tags returns a RouteOption that adds multiple tags.
func Unauthorized ¶ added in v1.12.0
func Unauthorized[T any](description ...string) RouteOption
Unauthorized returns a RouteOption that sets a 401 response schema type T.
func UnprocessableEntity ¶ added in v1.12.0
func UnprocessableEntity[T any](description ...string) RouteOption
UnprocessableEntity returns a RouteOption that sets a 422 response schema type T.
type Router ¶ added in v1.12.0
type Router interface {
// Standard HTTP methods that return RouteBuilder for chaining
Get(path string, handlers ...fiber.Handler) *RouteBuilder
Post(path string, handlers ...fiber.Handler) *RouteBuilder
Put(path string, handlers ...fiber.Handler) *RouteBuilder
Delete(path string, handlers ...fiber.Handler) *RouteBuilder
Patch(path string, handlers ...fiber.Handler) *RouteBuilder
Head(path string, handlers ...fiber.Handler) *RouteBuilder
Options(path string, handlers ...fiber.Handler) *RouteBuilder
All(path string, handlers ...fiber.Handler) Router
// Group creates a sub-router with a prefix
Group(prefix string, handlers ...fiber.Handler) Router
// Tags sets default tags for all routes created from this router
Tags(tags ...string) Router
// Use adds middleware
Use(args ...interface{}) Router
}
Router extends fiber.Router with fluent API methods
func NewRouterWithRegistry ¶ added in v1.12.0
func NewRouterWithRegistry(fiberRouter fiber.Router, registry *MetadataRegistry) Router
NewRouterWithRegistry creates a router wrapper bound to a specific metadata registry. If registry is nil, it falls back to the global registry.
type SchemaExtractor ¶ added in v1.12.0
type SchemaExtractor struct {
// contains filtered or unexported fields
}
SchemaExtractor extracts OpenAPI schemas from Go types using reflection
func NewSchemaExtractor ¶ added in v1.12.0
func NewSchemaExtractor() *SchemaExtractor
NewSchemaExtractor creates a new schema extractor
func (*SchemaExtractor) ExtractSchema ¶ added in v1.12.0
func (e *SchemaExtractor) ExtractSchema(t reflect.Type) map[string]interface{}
ExtractSchema analyzes a Go type and returns an OpenAPI schema
func (*SchemaExtractor) ExtractSchemaRef ¶ added in v1.12.0
func (e *SchemaExtractor) ExtractSchemaRef(t reflect.Type) map[string]interface{}
ExtractSchemaRef analyzes a Go type and returns a schema reference for named struct types while ensuring component schemas are registered.
func (*SchemaExtractor) GetSchemas ¶ added in v1.12.0
func (e *SchemaExtractor) GetSchemas() map[string]interface{}
GetSchemas returns all registered schemas
type SecurityRequirement ¶ added in v1.12.0
SecurityRequirement stores OpenAPI operation security requirements.
type ServerConfig ¶ added in v1.9.2
type SpaMiddleware ¶
type SpaMiddleware struct {
// contains filtered or unexported fields
}
func NewSpaMiddleware ¶
func NewSpaMiddlewareWithOptions ¶ added in v1.2.0
func NewSpaMiddlewareWithOptions(opts ...SpaOption) (*SpaMiddleware, error)
func (*SpaMiddleware) Handle ¶
func (s *SpaMiddleware) Handle(r fiber.Router)
type SpaOption ¶ added in v1.2.0
type SpaOption func(*spaOptions)
func WithSpaAssets ¶ added in v1.2.0
func WithSpaDistPath ¶ added in v1.2.0
func WithSpaLogger ¶ added in v1.2.0
type SwaggerContext ¶ added in v1.12.0
type SwaggerContext struct {
Route RouteInfo
Method string
Path string
Metadata *RouteMetadata
Models *SwaggerModelRegistry
Spec *AutoSwaggerSpec
Operation map[string]interface{}
}
SwaggerContext provides mutable route metadata during OpenAPI generation.
func (*SwaggerContext) AddParameter ¶ added in v1.12.0
func (c *SwaggerContext) AddParameter(parameter ParameterMetadata)
func (*SwaggerContext) AddTag ¶ added in v1.12.0
func (c *SwaggerContext) AddTag(tags ...string)
func (*SwaggerContext) RouteModelPackageName ¶ added in v1.12.0
func (c *SwaggerContext) RouteModelPackageName() string
RouteModelPackageName returns the last path segment of the primary model package.
func (*SwaggerContext) RouteModelPackagePath ¶ added in v1.12.0
func (c *SwaggerContext) RouteModelPackagePath() string
RouteModelPackagePath returns the import path of the primary model type.
func (*SwaggerContext) RouteModelType ¶ added in v1.12.0
func (c *SwaggerContext) RouteModelType() reflect.Type
RouteModelType returns a stable "primary" model type for this route context. Priority: request body type, then lowest-status response type, then query type, then parameter types, then pagination item type.
func (*SwaggerContext) SetDescription ¶ added in v1.12.0
func (c *SwaggerContext) SetDescription(description string)
func (*SwaggerContext) SetOperationField ¶ added in v1.12.0
func (c *SwaggerContext) SetOperationField(key string, value any)
func (*SwaggerContext) SetOperationID ¶ added in v1.12.0
func (c *SwaggerContext) SetOperationID(operationID string)
func (*SwaggerContext) SetRequestBody ¶ added in v1.12.0
func (c *SwaggerContext) SetRequestBody(model any, required bool, contentTypes ...string)
func (*SwaggerContext) SetResponse ¶ added in v1.12.0
func (c *SwaggerContext) SetResponse(statusCode int, model any, description string)
func (*SwaggerContext) SetSummary ¶ added in v1.12.0
func (c *SwaggerContext) SetSummary(summary string)
type SwaggerCustomizeFunc ¶ added in v1.12.0
type SwaggerCustomizeFunc func(ctx *SwaggerContext)
SwaggerCustomizeFunc adapts a function to SwaggerCustomizer.
func (SwaggerCustomizeFunc) CustomizeSwagger ¶ added in v1.12.0
func (f SwaggerCustomizeFunc) CustomizeSwagger(ctx *SwaggerContext)
type SwaggerCustomizer ¶ added in v1.12.0
type SwaggerCustomizer interface {
CustomizeSwagger(ctx *SwaggerContext)
}
SwaggerCustomizer allows DI-provided structs to mutate route metadata during autoswagger generation.
type SwaggerMiddleware ¶ added in v1.12.0
type SwaggerMiddleware struct {
// contains filtered or unexported fields
}
func NewSwaggerMiddleware ¶ added in v1.12.0
func NewSwaggerMiddleware(config Config) (*SwaggerMiddleware, error)
func NewSwaggerMiddlewareWithOptions ¶ added in v1.12.0
func NewSwaggerMiddlewareWithOptions(opts ...SwaggerOption) (*SwaggerMiddleware, error)
func (*SwaggerMiddleware) Handle ¶ added in v1.12.0
func (h *SwaggerMiddleware) Handle(r fiber.Router)
type SwaggerModelRegistry ¶ added in v1.12.0
type SwaggerModelRegistry struct {
// contains filtered or unexported fields
}
SwaggerModelRegistry stores extra model types that should be included in generated OpenAPI component schemas.
func NewSwaggerModelRegistry ¶ added in v1.12.0
func NewSwaggerModelRegistry() *SwaggerModelRegistry
NewSwaggerModelRegistry creates a DI-friendly registry for additional swagger models.
func (*SwaggerModelRegistry) Add ¶ added in v1.12.0
func (r *SwaggerModelRegistry) Add(models ...any) *SwaggerModelRegistry
Add registers one or more model values or reflect.Type values. Nil values are ignored.
func (*SwaggerModelRegistry) AddNamed ¶ added in v1.12.0
func (r *SwaggerModelRegistry) AddNamed(name string, model any) *SwaggerModelRegistry
AddNamed registers a model and forces its OpenAPI schema name. This works for both named and anonymous struct types.
func (*SwaggerModelRegistry) Clear ¶ added in v1.12.0
func (r *SwaggerModelRegistry) Clear()
Clear removes all registered model types.
func (*SwaggerModelRegistry) Types ¶ added in v1.12.0
func (r *SwaggerModelRegistry) Types() []reflect.Type
Types returns a deterministic snapshot of all registered model types.
type SwaggerOption ¶ added in v1.2.0
type SwaggerOption func(*swaggerOptions)
func RegisterHook ¶ added in v1.12.0
func RegisterHook(hook ...HookFunc) SwaggerOption
RegisterHook sets the autoswagger hook inside UseAutoSwagger(...). Usage: UseAutoSwagger(RegisterHook(func(ctx *SwaggerContext) { ... })) When called with no arguments it is a no-op option.
func WithAPIContact ¶ added in v1.12.0
func WithAPIContact(name, url, email string) SwaggerOption
WithAPIContact sets OpenAPI info.contact.
func WithAPIKeySecurityScheme ¶ added in v1.12.0
func WithAPIKeySecurityScheme(name, keyName, in string) SwaggerOption
WithAPIKeySecurityScheme adds a global API key security scheme to auto-generated OpenAPI docs. Parameter "in" should be one of: header, query, cookie.
func WithAPILicense ¶ added in v1.12.0
func WithAPILicense(name, url string) SwaggerOption
WithAPILicense sets OpenAPI info.license.
func WithAPITermsOfService ¶ added in v1.12.0
func WithAPITermsOfService(url string) SwaggerOption
WithAPITermsOfService sets OpenAPI info.termsOfService.
func WithBearerSecurityScheme ¶ added in v1.12.0
func WithBearerSecurityScheme(name string) SwaggerOption
WithBearerSecurityScheme adds a global HTTP bearer security scheme to auto-generated OpenAPI docs.
func WithDefaultSecurity ¶ added in v1.12.0
func WithDefaultSecurity(scheme string, scopes ...string) SwaggerOption
WithDefaultSecurity adds a global default OpenAPI security requirement. Usage: WithDefaultSecurity("BearerAuth") or WithDefaultSecurity("OAuth2", "read:users")
func WithSwaggerConfig ¶ added in v1.2.0
func WithSwaggerConfig(config Config) SwaggerOption
func WithSwaggerCustomize ¶ added in v1.12.0
func WithSwaggerCustomize(hook HookFunc) SwaggerOption
WithSwaggerCustomize registers a per-UseAutoSwagger metadata hook. This hook can mutate operation metadata before OpenAPI operation generation.
func WithSwaggerExtraModels ¶ added in v1.12.0
func WithSwaggerExtraModels(models ...any) SwaggerOption
WithSwaggerExtraModels registers additional model types to always include in OpenAPI components.schemas generation.
func WithSwaggerPath ¶ added in v1.2.0
func WithSwaggerPath(path string) SwaggerOption
func WithTagDescription ¶ added in v1.12.0
func WithTagDescription(name, description string) SwaggerOption
WithTagDescription adds a top-level OpenAPI tag with description (or enriches an existing tag).
type SwaggerPostRun ¶ added in v1.12.0
type SwaggerPostRun interface {
PostCustomizeSwagger(ctx *SwaggerContext)
}
SwaggerPostRun is an optional interface for logic that should run after operation generation for the current route.
type SwaggerPreRun ¶ added in v1.12.0
type SwaggerPreRun interface {
PreCustomizeSwagger(ctx *SwaggerContext)
}
SwaggerPreRun is an optional interface for logic that should run before the main customization phase.
Source Files
¶
- autoswagger.go
- autoswagger_di.go
- autoswagger_helpers.go
- build.go
- config.go
- di.go
- enum_registry.go
- error.go
- error_presets.go
- extensions_tag.go
- fiber.go
- handler.go
- hook_registry.go
- mocks.go
- module.go
- module_registry_lifecycle.go
- operation_id_hook_registry.go
- operation_id_registry.go
- otel.go
- priority.go
- query.go
- registry_container.go
- registry_lifecycle.go
- response.go
- route_builder.go
- route_metadata.go
- route_options.go
- router.go
- schema_extractor.go
- schema_name_registry.go
- static.go
- swagger.go
- swagger_customizer.go
- swagger_model_registry.go
- swaggertype.go
- tag_value.go
- type_rules_registry.go
- web.go