Documentation
¶
Index ¶
- type AuthorizationMetadata
- type EndpointOption
- type GroupOpenApiConfig
- type Handler
- type IEndpointConventionBuilder
- type IEndpointRouteBuilder
- type OpenApiBuilder
- func (o *OpenApiBuilder) Anonymous() *OpenApiBuilder
- func (o *OpenApiBuilder) ApiError(statusCode int) *OpenApiBuilder
- func (o *OpenApiBuilder) ApiResponse(typ reflect.Type, statusCode ...int) *OpenApiBuilder
- func (o *OpenApiBuilder) ApiResponseSchema(schema openapi.Schema, statusCode ...int) *OpenApiBuilder
- func (o *OpenApiBuilder) Base64Image(statusCode ...int) *OpenApiBuilder
- func (o *OpenApiBuilder) BinaryImage(contentType string, statusCode ...int) *OpenApiBuilder
- func (o *OpenApiBuilder) Body(typ reflect.Type, contentType ...string) *OpenApiBuilder
- func (o *OpenApiBuilder) BodySchema(schema openapi.Schema, contentType ...string) *OpenApiBuilder
- func (o *OpenApiBuilder) Cookie(typ reflect.Type, name, description string, required bool) *OpenApiBuilder
- func (o *OpenApiBuilder) Description(description string) *OpenApiBuilder
- func (o *OpenApiBuilder) Header(typ reflect.Type, name, description string, required bool) *OpenApiBuilder
- func (o *OpenApiBuilder) Name(name string) *OpenApiBuilder
- func (o *OpenApiBuilder) Params(typ reflect.Type) *OpenApiBuilder
- func (o *OpenApiBuilder) Path(typ reflect.Type, name, description string) *OpenApiBuilder
- func (o *OpenApiBuilder) Problem(statusCode int) *OpenApiBuilder
- func (o *OpenApiBuilder) Query(typ reflect.Type, name, description string, required bool) *OpenApiBuilder
- func (o *OpenApiBuilder) Response(typ reflect.Type, statusCode ...int) *OpenApiBuilder
- func (o *OpenApiBuilder) ResponseSchema(schema openapi.Schema, statusCode int, contentType ...string) *OpenApiBuilder
- func (o *OpenApiBuilder) Security(name string, scopes ...string) *OpenApiBuilder
- func (o *OpenApiBuilder) Summary(summary string) *OpenApiBuilder
- func (o *OpenApiBuilder) Tags(tags ...string) *OpenApiBuilder
- func (o *OpenApiBuilder) ValidationError() *OpenApiBuilder
- type OpenApiMetadata
- type ParameterMetadata
- type RequestMetadata
- type ResponseMetadata
- type RouteBuilder
- func (b *RouteBuilder) AddApiSecurityRequirement(name string, scopes []string)
- func (b *RouteBuilder) AddParameterMetadata(metadata ParameterMetadata)
- func (b *RouteBuilder) AddRequestMetadata(metadata RequestMetadata)
- func (b *RouteBuilder) AddResponseMetadata(metadata ResponseMetadata)
- func (b *RouteBuilder) AddTags(tags ...string)
- func (b *RouteBuilder) GetApiSecurityRequirements() []map[string][]string
- func (b *RouteBuilder) GetDescription() string
- func (b *RouteBuilder) GetMetadata() []interface{}
- func (b *RouteBuilder) GetMethod() string
- func (b *RouteBuilder) GetName() string
- func (b *RouteBuilder) GetPath() string
- func (b *RouteBuilder) GetSummary() string
- func (b *RouteBuilder) GetTags() []string
- func (b *RouteBuilder) IsOpenApiEnabled() bool
- func (b *RouteBuilder) SetAllowAnonymous(allow bool)
- func (b *RouteBuilder) SetApiSecurityRequirements(requirements []map[string][]string)
- func (b *RouteBuilder) SetAuthorizationPolicies(policies []string)
- func (b *RouteBuilder) SetDescription(description string)
- func (b *RouteBuilder) SetName(name string)
- func (b *RouteBuilder) SetSummary(summary string)
- func (b *RouteBuilder) SetTags(tags []string)
- func (b *RouteBuilder) WithOpenApi(configure func(*OpenApiBuilder)) IEndpointConventionBuilder
- type RouteGroupBuilder
- func (g *RouteGroupBuilder) DELETE(pattern string, handlers ...Handler) IEndpointConventionBuilder
- func (g *RouteGroupBuilder) GET(pattern string, handlers ...Handler) IEndpointConventionBuilder
- func (g *RouteGroupBuilder) GetRoutes() []*RouteBuilder
- func (g *RouteGroupBuilder) Group(prefix string, handlers ...gin.HandlerFunc) *RouteGroupBuilder
- func (g *RouteGroupBuilder) PATCH(pattern string, handlers ...Handler) IEndpointConventionBuilder
- func (g *RouteGroupBuilder) POST(pattern string, handlers ...Handler) IEndpointConventionBuilder
- func (g *RouteGroupBuilder) PUT(pattern string, handlers ...Handler) IEndpointConventionBuilder
- func (g *RouteGroupBuilder) SetHandlerConverter(fn func(Handler) gin.HandlerFunc)
- func (g *RouteGroupBuilder) WithOpenApi(configure func(*OpenApiBuilder)) *RouteGroupBuilder
- type TagsMetadata
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthorizationMetadata ¶
type AuthorizationMetadata struct {
Policies []string
}
AuthorizationMetadata 表示授权元数据。
type EndpointOption ¶
type EndpointOption func(IEndpointConventionBuilder) IEndpointConventionBuilder
EndpointOption 是配置端点的函数。
type GroupOpenApiConfig ¶
type GroupOpenApiConfig struct {
Configure func(*OpenApiBuilder)
}
GroupOpenApiConfig 保存要应用于组路由的 OpenAPI 配置。
type IEndpointConventionBuilder ¶
type IEndpointConventionBuilder interface {
// WithOpenApi 为此端点启用 OpenAPI 文档并应用选项。
// 对应 .NET 的 endpoint.WithOpenApi()。
WithOpenApi(configure func(*OpenApiBuilder)) IEndpointConventionBuilder
}
IEndpointConventionBuilder 用于配置端点。 所有配置应通过 WithOpenApi() 和端点选项完成。
type IEndpointRouteBuilder ¶
type IEndpointRouteBuilder interface {
// GET 注册 GET 端点。
GET(pattern string, handlers ...Handler) IEndpointConventionBuilder
// POST 注册 POST 端点。
POST(pattern string, handlers ...Handler) IEndpointConventionBuilder
// PUT 注册 PUT 端点。
PUT(pattern string, handlers ...Handler) IEndpointConventionBuilder
// DELETE 注册 DELETE 端点。
DELETE(pattern string, handlers ...Handler) IEndpointConventionBuilder
// PATCH 注册 PATCH 端点。
PATCH(pattern string, handlers ...Handler) IEndpointConventionBuilder
// Group 创建路由组。
Group(prefix string, handlers ...gin.HandlerFunc) *RouteGroupBuilder
}
IEndpointRouteBuilder 定义应用程序中路由构建器的契约。
type OpenApiBuilder ¶
type OpenApiBuilder struct {
// contains filtered or unexported fields
}
OpenApiBuilder provides a fluent API for configuring OpenAPI metadata.
func (*OpenApiBuilder) Anonymous ¶
func (o *OpenApiBuilder) Anonymous() *OpenApiBuilder
Anonymous allows anonymous access.
func (*OpenApiBuilder) ApiError ¶
func (o *OpenApiBuilder) ApiError(statusCode int) *OpenApiBuilder
ApiError adds an API error response.
func (*OpenApiBuilder) ApiResponse ¶
func (o *OpenApiBuilder) ApiResponse(typ reflect.Type, statusCode ...int) *OpenApiBuilder
ApiResponse adds an ApiResponse-wrapped response. Use router.TypeOf[T]() to specify the type. Example: api.ApiResponse(router.TypeOf[User](), 200)
func (*OpenApiBuilder) ApiResponseSchema ¶
func (o *OpenApiBuilder) ApiResponseSchema(schema openapi.Schema, statusCode ...int) *OpenApiBuilder
ApiResponseSchema uses a custom schema wrapped in ApiResponse.
func (*OpenApiBuilder) Base64Image ¶
func (o *OpenApiBuilder) Base64Image(statusCode ...int) *OpenApiBuilder
Base64Image adds a base64 image response.
func (*OpenApiBuilder) BinaryImage ¶
func (o *OpenApiBuilder) BinaryImage(contentType string, statusCode ...int) *OpenApiBuilder
BinaryImage adds a binary image response.
func (*OpenApiBuilder) Body ¶
func (o *OpenApiBuilder) Body(typ reflect.Type, contentType ...string) *OpenApiBuilder
Body sets the request body type. Use router.TypeOf[T]() to specify the type. Example: api.Body(router.TypeOf[CreateUserRequest]())
func (*OpenApiBuilder) BodySchema ¶
func (o *OpenApiBuilder) BodySchema(schema openapi.Schema, contentType ...string) *OpenApiBuilder
BodySchema uses a custom schema for request body.
func (*OpenApiBuilder) Cookie ¶
func (o *OpenApiBuilder) Cookie(typ reflect.Type, name, description string, required bool) *OpenApiBuilder
Cookie adds a cookie parameter. Use router.TypeOf[T]() to specify the type. Example: api.Cookie(router.TypeOf[string](), "session", "会话ID", false)
func (*OpenApiBuilder) Description ¶
func (o *OpenApiBuilder) Description(description string) *OpenApiBuilder
Description sets the OpenAPI description.
func (*OpenApiBuilder) Header ¶
func (o *OpenApiBuilder) Header(typ reflect.Type, name, description string, required bool) *OpenApiBuilder
Header adds a header parameter. Use router.TypeOf[T]() to specify the type. Example: api.Header(router.TypeOf[string](), "X-Token", "认证令牌", false)
func (*OpenApiBuilder) Name ¶
func (o *OpenApiBuilder) Name(name string) *OpenApiBuilder
Name sets the endpoint name.
func (*OpenApiBuilder) Params ¶
func (o *OpenApiBuilder) Params(typ reflect.Type) *OpenApiBuilder
Params adds multiple parameters from a struct type. Fields should be tagged with in:"<location>" where location is query/header/path/cookie. Supported tags:
- in: Parameter location (required) - query/header/path/cookie
- desc: Parameter description (optional)
- required: Whether the parameter is required (optional, default: false, path params are always required)
- example: Example value (optional)
- enum: Comma-separated enum values (optional)
- default: Default value (optional)
Example:
type SearchParams struct {
CategoryID string `in:"path" desc:"分类ID"`
Keyword string `in:"query" desc:"搜索关键词" required:"true"`
Page int `in:"query" desc:"页码" default:"1"`
SortBy string `in:"query" desc:"排序字段" enum:"name,price,date"`
}
api.Params(router.TypeOf[SearchParams]())
func (*OpenApiBuilder) Path ¶
func (o *OpenApiBuilder) Path(typ reflect.Type, name, description string) *OpenApiBuilder
Path adds a path parameter (always required). Use router.TypeOf[T]() to specify the type. Example: api.Path(router.TypeOf[string](), "id", "用户ID")
func (*OpenApiBuilder) Problem ¶
func (o *OpenApiBuilder) Problem(statusCode int) *OpenApiBuilder
Problem adds a problem details response.
func (*OpenApiBuilder) Query ¶
func (o *OpenApiBuilder) Query(typ reflect.Type, name, description string, required bool) *OpenApiBuilder
Query adds a query parameter. Use router.TypeOf[T]() to specify the type. Example: api.Query(router.TypeOf[int](), "page", "页码", false)
func (*OpenApiBuilder) Response ¶
func (o *OpenApiBuilder) Response(typ reflect.Type, statusCode ...int) *OpenApiBuilder
Response adds a response type. Use router.TypeOf[T]() to specify the type. Example: api.Response(router.TypeOf[User](), 201)
func (*OpenApiBuilder) ResponseSchema ¶
func (o *OpenApiBuilder) ResponseSchema(schema openapi.Schema, statusCode int, contentType ...string) *OpenApiBuilder
ResponseSchema uses a custom schema for response.
func (*OpenApiBuilder) Security ¶
func (o *OpenApiBuilder) Security(name string, scopes ...string) *OpenApiBuilder
Security adds authentication requirement.
func (*OpenApiBuilder) Summary ¶
func (o *OpenApiBuilder) Summary(summary string) *OpenApiBuilder
Summary sets the OpenAPI summary.
func (*OpenApiBuilder) Tags ¶
func (o *OpenApiBuilder) Tags(tags ...string) *OpenApiBuilder
Tags adds OpenAPI tags.
func (*OpenApiBuilder) ValidationError ¶
func (o *OpenApiBuilder) ValidationError() *OpenApiBuilder
ValidationError adds a validation error response (422).
type ParameterMetadata ¶
type ParameterMetadata struct {
Name string
In string // path, query, header, cookie
Description string
Required bool
Type reflect.Type
}
ParameterMetadata represents parameter metadata.
type RequestMetadata ¶
type RequestMetadata struct {
ContentType string
Type reflect.Type
Schema *openapi.Schema // Manually defined Schema
}
RequestMetadata represents request metadata.
type ResponseMetadata ¶
type ResponseMetadata struct {
StatusCode int
Type reflect.Type
ContentType string // Custom response content type (e.g., image/png)
Format string // OpenAPI format (byte, binary)
Schema *openapi.Schema // Manually defined Schema
IsProblem bool
IsApiResponse bool // Indicates if the response should be wrapped in web.ApiResponse
IsErrorResponse bool // Indicates if this is an error response (only error field populated)
}
ResponseMetadata represents response metadata.
type RouteBuilder ¶
type RouteBuilder struct {
// contains filtered or unexported fields
}
RouteBuilder 实现 IEndpointConventionBuilder 接口。
func NewRouteBuilder ¶
func NewRouteBuilder(method, path string) *RouteBuilder
NewRouteBuilder 创建新的 RouteBuilder。
func (*RouteBuilder) AddApiSecurityRequirement ¶
func (b *RouteBuilder) AddApiSecurityRequirement(name string, scopes []string)
AddApiSecurityRequirement adds a single security requirement.
func (*RouteBuilder) AddParameterMetadata ¶
func (b *RouteBuilder) AddParameterMetadata(metadata ParameterMetadata)
AddParameterMetadata adds parameter metadata.
func (*RouteBuilder) AddRequestMetadata ¶
func (b *RouteBuilder) AddRequestMetadata(metadata RequestMetadata)
AddRequestMetadata adds request metadata.
func (*RouteBuilder) AddResponseMetadata ¶
func (b *RouteBuilder) AddResponseMetadata(metadata ResponseMetadata)
AddResponseMetadata adds response metadata.
func (*RouteBuilder) AddTags ¶
func (b *RouteBuilder) AddTags(tags ...string)
AddTags adds OpenAPI tags.
func (*RouteBuilder) GetApiSecurityRequirements ¶
func (b *RouteBuilder) GetApiSecurityRequirements() []map[string][]string
GetApiSecurityRequirements returns the API security requirements.
func (*RouteBuilder) GetDescription ¶
func (b *RouteBuilder) GetDescription() string
GetDescription returns the OpenAPI description.
func (*RouteBuilder) GetMetadata ¶
func (b *RouteBuilder) GetMetadata() []interface{}
GetMetadata returns all metadata.
func (*RouteBuilder) GetMethod ¶
func (b *RouteBuilder) GetMethod() string
GetMethod returns the HTTP method.
func (*RouteBuilder) GetName ¶
func (b *RouteBuilder) GetName() string
GetName returns the endpoint name.
func (*RouteBuilder) GetPath ¶
func (b *RouteBuilder) GetPath() string
GetPath returns the route path.
func (*RouteBuilder) GetSummary ¶
func (b *RouteBuilder) GetSummary() string
GetSummary returns the OpenAPI summary.
func (*RouteBuilder) GetTags ¶
func (b *RouteBuilder) GetTags() []string
GetTags returns the OpenAPI tags.
func (*RouteBuilder) IsOpenApiEnabled ¶
func (b *RouteBuilder) IsOpenApiEnabled() bool
IsOpenApiEnabled returns whether OpenAPI documentation is enabled for this endpoint.
func (*RouteBuilder) SetAllowAnonymous ¶
func (b *RouteBuilder) SetAllowAnonymous(allow bool)
SetAllowAnonymous sets whether anonymous access is allowed.
func (*RouteBuilder) SetApiSecurityRequirements ¶
func (b *RouteBuilder) SetApiSecurityRequirements(requirements []map[string][]string)
SetApiSecurityRequirements sets the API security requirements for OpenAPI documentation.
func (*RouteBuilder) SetAuthorizationPolicies ¶
func (b *RouteBuilder) SetAuthorizationPolicies(policies []string)
SetAuthorizationPolicies sets authorization policies.
func (*RouteBuilder) SetDescription ¶
func (b *RouteBuilder) SetDescription(description string)
SetDescription sets the OpenAPI description.
func (*RouteBuilder) SetName ¶
func (b *RouteBuilder) SetName(name string)
SetName sets the endpoint name.
func (*RouteBuilder) SetSummary ¶
func (b *RouteBuilder) SetSummary(summary string)
SetSummary sets the OpenAPI summary.
func (*RouteBuilder) SetTags ¶
func (b *RouteBuilder) SetTags(tags []string)
SetTags sets the OpenAPI tags.
func (*RouteBuilder) WithOpenApi ¶
func (b *RouteBuilder) WithOpenApi(configure func(*OpenApiBuilder)) IEndpointConventionBuilder
WithOpenApi 为此端点启用 OpenAPI 文档并应用选项。 对应 .NET 的 endpoint.WithOpenApi()。
type RouteGroupBuilder ¶
type RouteGroupBuilder struct {
// contains filtered or unexported fields
}
RouteGroupBuilder 表示具有公共前缀的端点组。
func NewRouteGroupBuilder ¶
func NewRouteGroupBuilder(ginGroup *gin.RouterGroup, prefix string) *RouteGroupBuilder
NewRouteGroupBuilder 创建新的 RouteGroupBuilder。
func (*RouteGroupBuilder) DELETE ¶
func (g *RouteGroupBuilder) DELETE(pattern string, handlers ...Handler) IEndpointConventionBuilder
DELETE 注册 DELETE 端点。
func (*RouteGroupBuilder) GET ¶
func (g *RouteGroupBuilder) GET(pattern string, handlers ...Handler) IEndpointConventionBuilder
GET 注册 GET 端点。 设置处理器转换器时支持多种处理器类型。
func (*RouteGroupBuilder) GetRoutes ¶
func (g *RouteGroupBuilder) GetRoutes() []*RouteBuilder
GetRoutes 递归返回此组及其子组中的所有路由。
func (*RouteGroupBuilder) Group ¶
func (g *RouteGroupBuilder) Group(prefix string, handlers ...gin.HandlerFunc) *RouteGroupBuilder
Group 创建嵌套路由组。
func (*RouteGroupBuilder) PATCH ¶
func (g *RouteGroupBuilder) PATCH(pattern string, handlers ...Handler) IEndpointConventionBuilder
PATCH 注册 PATCH 端点。
func (*RouteGroupBuilder) POST ¶
func (g *RouteGroupBuilder) POST(pattern string, handlers ...Handler) IEndpointConventionBuilder
POST 注册 POST 端点。
func (*RouteGroupBuilder) PUT ¶
func (g *RouteGroupBuilder) PUT(pattern string, handlers ...Handler) IEndpointConventionBuilder
PUT 注册 PUT 端点。
func (*RouteGroupBuilder) SetHandlerConverter ¶
func (g *RouteGroupBuilder) SetHandlerConverter(fn func(Handler) gin.HandlerFunc)
SetHandlerConverter 设置处理器转换函数。 用于将自定义处理器类型转换为 gin.HandlerFunc。
func (*RouteGroupBuilder) WithOpenApi ¶
func (g *RouteGroupBuilder) WithOpenApi(configure func(*OpenApiBuilder)) *RouteGroupBuilder
WithOpenApi 为此组启用 OpenAPI 文档。 配置将应用于此组中创建的所有路由。