Как интегрировать Swagger с SpringDoc YAML?
Я использую Swagger для документирования своего проекта и хочу создать документ YAML из springdoc. Но когда я создаю эту документацию YAML, у YAML нет моих документов Swagger. Например. В моем проекте есть одна конечная точка:
@ApiOperation(value = "Return a list of Pix Wallets.", httpMethod = "POST", response = DResponse.class)
@PostMapping("/digital-wallet")
public ResponseEntity<DResponse> getDigitalWallets(@RequestBody PixDigitalWalletRequest pixDigitalWalletRequest) {
return ResponseEntity.ok(pixService.getDigitalWallets(pixDigitalWalletRequest));
}
Когда я открываю документ с чванством, я вижу правильную документацию:
Но... Когда я создаю свой документ YAML, я не вижу свой комментарий (например: "Вернуть список кошельков Pix") в моем документе YAML. Например:
paths:
/api/pix/digital-wallet:
post:
tags:
- pix-controller
operationId: getDigitalWallets
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PixDigitalWalletRequest'
responses:
"200":
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/DResponse'
Как добавить мои комментарии Swagger в мой документ YAML?
1 ответ
Вы столкнулись с проблемой, потому что используете аннотацию Swagger 1.x с Springdoc, которая полагается на аннотации Swagger 2.x.
Выполните рефакторинг вашего кода, как показано ниже, чтобы решить проблему.
@Operation(summary = "Return a list of Pix Wallets.")
@ApiResponses(value = {
// 201 as it's a POST method, ideally shoud have empty schema as @Schema(), but put the class name to suit your use-case
@ApiResponse(responseCode = "201", description = "Created", content = {@Content(mediaType = "application/json", schema = @Schema(DResponse.class))}),
@ApiResponse(responseCode = "500", description = "Internal Server Error", content = {@Content(mediaType = "application/json", schema = @Schema(implementation = MyErrorResponse.class))})
})
@PostMapping("/digital-wallet")
public ResponseEntity<DResponse> getDigitalWallets(@RequestBody PixDigitalWalletRequest pixDigitalWalletRequest) {
return ResponseEntity.ok(pixService.getDigitalWallets(pixDigitalWalletRequest));
}
Обратитесь к странице Миграция из Springfox - Springdoc для получения подробного списка всех аннотаций и других изменений миграции.