Я использую 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()