Я получаю ошибки проверки в моей спецификации OpenAPI, созданной Springdoc, и не вижу, чтобы найти в Интернете пример, который соответствует тому, как сформирован мой код Java.
Я пытаюсь создать спецификацию OpenAPI с помощью Springdoc для контроллера загрузки Spring. У меня есть отображение для пути, который имеет несколько переменных пути, и сигнатура метода принимает объект команды (объект команды автоматически создается из этих переменных пути). Swagger-UI.html, похоже, работает более или менее, но сгенерированная спецификация JSON / YAML, похоже, недействительна.
Фрагмент кода, о котором я говорю:
@GetMapping("/myPath/{foo}/{bar}/{baz}")
public Mono<MyServiceResponse> doSomethingInteresting(@Valid DoSomethingInterestingCommand command) {
return interestingService.doSomethingInteresting(command);
}
В результате создается следующий фрагмент OpenApi:
paths:
'/myPath/{foo}/{bar}/{baz}':
get:
tags:
- my-controller
operationId: doSomethingInteresting
parameters:
- name: command
in: query
required: true
schema:
$ref: '#/components/schemas/DoSomethingInterestingCommand'
Затем это приводит к таким ошибкам:
Semantic error at paths./myPath/{foo}/{bar}/{baz}
Declared path parameter "foo" needs to be defined as a path parameter at either the path or operation level
Что мне следует сделать по-другому, чтобы сгенерированная спецификация была правильно сформирована? Мне также любопытно, почему страница swagger-ui.html работает нормально, но это менее важно.