Я пытаюсь сгенерировать код клиента с помощью swagger-codegen с сервера Micronaut.Проблема возникает с аутентифицированными маршрутами POST и PUT (он отлично работает для GET a DELETE).
Когда у меня есть такой метод в контроллере:
@Override
@Post("/")
public Single<? extends HttpResponse> updateStatus(Authentication authentication, GameReference gameReference) {
// ...
}
Результирующая чванство для этогометод выглядит следующим образом:
post:
tags:
- /presence
description: Updates status
operationId: updateStatus
parameters: []
requestBody:
content:
application/json:
schema:
type: object
properties:
authentication:
$ref: '#/components/schemas/Authentication'
gameReference:
$ref: '#/components/schemas/GameReference'
required: true
responses:
default:
description: HTTP 204 for successful updates.
content:
application/json: {}
Таким образом, субъект аутентификации встроен в тело запроса, и в сгенерированном клиентском коде параметры этого метода будут объектами с аутентификацией и GameReference.
Что я пытался обойти эту проблему:
- Добавьте @Parameter (hidden = true) перед параметром Authentication.Ничего не изменилось.
- Игра с чванливыми аннотациями для аутентификации, такими как @SecuritySchema и @SecurityDefention.Принцип аутентификации все еще генерируется в swamger yaml.
Это ошибка в реализации Micronauts Swagger или есть способ обойти это?Обратите внимание, что это хорошо работает для GET и DELETE.Там принцип аутентификации игнорируется.