I am using oapi-codegen to generate my server code and Echo Labstack as the server.
When I pass a Group
instance to Openapi.RegisterHandlers
instead of an Echo
instance, I always get a 400 error with {"message":"no matching operation was found"}
for any request in that group:
swagger, err := Openapi.GetSwagger()
if err != nil {
fmt.Fprintf(os.Stderr, "Error loading swagger spec\n: %s", err)
os.Exit(1)
}
// Use oapi validation middleware to check all requests against the
// OpenAPI schema.
g := e.Group("/api", middleware.OapiRequestValidator(swagger))
Openapi.RegisterHandlers(g, &MyApi{})
If send request /api/foo
, where foo
is an API endpoint defined in the generated server code, I get a 400 error. If I do /api/<some undefined api>
I also get 400. If I do send a request for /baz
, I get 404 as expected, since that isn't a defined route. If I don't pass a prefix to Group()
, I get a 400 error for every request. I get the same behavior if I use RegisterHandlersWithBaseURL()