OpenAPI Generation
Generate OpenAPI/Swagger documents from your HTTP handlers.
Basic Usage
import "github.com/mirkobrombin/go-module-router/v2/pkg/swagger"
doc, err := swagger.Build("My API", "1.0.0",
&GetUser{},
&CreateUser{},
)
fmt.Println(string(doc))
Adding Metadata
Implement OpenAPIMeta() on your handler:
type GetUser struct {
Meta core.Pattern `method:"GET" path:"/users/{id}"`
ID string `path:"id"`
}
func (e *GetUser) OpenAPIMeta() map[string]any {
return map[string]any{
"summary": "Get a user by ID",
"description": "Returns the user object for the given ID.",
"responses": map[int]any{
200: "User",
404: "Not Found",
},
}
}
CLI Integration
go run main.go swagger > openapi.json
go run main.go --meta > openapi.json