我正在使用oapi-codegen生成我的服务器代码并使用 Echo Labstack 作为服务器。当我传递一个Group
实例Openapi.RegisterHandlers
而不是一个实例时,对于该组中的任何请求Echo
,我总是会收到 400 错误:{"message":"no matching operation was found"}
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{})
如果发送请求/api/foo
,foo
生成的服务器代码中定义的 API 端点在哪里,我会收到 400 错误。如果我这样做,/api/<some undefined api>
我也会得到 400。如果我确实发送请求/baz
,我会按预期得到 404,因为这不是定义的路线。如果我没有将前缀传递给Group()
,每个请求都会收到 400 错误。如果我使用,我会得到相同的行为RegisterHandlersWithBaseURL()