modulepackage
0.0.0-20240805224438-613a47dbccba
Repository: https://github.com/jamesrr39/go-openapix.git
Documentation: pkg.go.dev
# README
go-openapix
go-openapix provides some useful convience functions to to swaggest, so that you can build up your APIs in a type-checked and auto-documented way!
Some highlights:
MustCreateOpenapiEndpoint
- uses generics to enforce that you are returning the correct (documented) type in code. End-user does not need to use generics themselves, making it simpler to use. It also generates a endpoint name, based on the title you provide - no accidental copy/paste doubling-up endpoints with the same name.MustCheckNonNullArrays
- document[]
instead ofnull
when the array is empty.
Usage:
func main() {
apiSchema := &openapi.Collector{}
r := chirouter.NewWrapper(chi.NewRouter())
r.Use(nethttp.OpenAPIMiddleware(apiSchema))
... // your setup here
// add an endpoint
openapix.Post(r, "/customers", GetAllCustomers(dbConnection, customersStore))
// check array types are marked as non-null; i.e. no items will return "[]" instead of "null"
openapix.MustCheckNonNullArrays(apiSchema.Reflector().Spec.Components.Schemas.MapOfSchemaOrRefValues)
openapix.MustNotHaveDuplicateOperationIDOrUnknownSecurity(apiSchema.Reflector().Spec)
// start your web server
}
type GetAllCustomersRequest struct{}
type GetAllCustomersResponse struct {
Customers []Customer `json:"customers" nullable:"false"`
}
func GetAllCustomers(dbConnection *sql.DB, customersStore *CustomersStore) *nethttp.Handler {
return openapix.MustCreateOpenapiEndpoint(
"Get All Customers",
&openapix.HandlerOptions{Tags: []string{"Customers"}},
func(ctx context.Context, input *GetAllCustomersRequest, output *GetAllCustomersResponse) error {
customers, err := customersStore.GetAll(dbConnection)
if err != nil {
return status.Wrap(err, status.Internal)
}
output.Customers = customers
return nil
},
)
}
# Functions
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
MustCheckNonNullArrays enforces non-null arrays across the whole of your schema.
MustCreateOpenapiEndpoint creates an openapi endpoint.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Structs
No description provided by the author
No description provided by the author
# Type aliases
No description provided by the author