Springdoc автоматически генерирует документацию API для всех методов обработчика. Даже если аннотаций OpenAPI нет.
Как я могу скрыть конечные точки из документации API?
Springdoc автоматически генерирует документацию API для всех методов обработчика. Даже если аннотаций OpenAPI нет.
Как я могу скрыть конечные точки из документации API?
Аннотация @io.swagger.v3.oas.annotations.Hidden
может использоваться на уровне метода или класса контроллера, чтобы скрыть одну или все конечные точки.
(См .: https://springdoc.org/faq.html#how-can-i-hide-an-operation-or-a-controller-from-documentation)
Пример:
@Hidden // Hide all endpoints
@RestController
@RequestMapping(path = "/test")
public class TestController {
private String test = "Test";
@Operation(summary = "Get test string", description = "Returns a test string", tags = { "test" })
@ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Success" ) })
@GetMapping(value = "", produces = MediaType.TEXT_PLAIN_VALUE)
public @ResponseBody String getTest() {
return test;
}
@Hidden // Hide this endpoint
@PutMapping(value = "", consumes = MediaType.TEXT_PLAIN_VALUE)
@ResponseStatus(HttpStatus.OK)
public void setTest(@RequestBody String test) {
this.test = test;
}
}
Изменить:
Также возможно создание документации API только для контроллеров определенных пакетов.
Добавьте в свой application.properties
файл следующее:
springdoc.packagesToScan=package1, package2
(См .: https://springdoc.org/faq.html#how-can-i-explicitly-set-which-packages-to-scan)
Если вы работаете с Swagger Api и хотите скрыть конкретную конечную точку, используйте @ApiOperation(value = "Get Building",hidden=true)
на этой конечной точке ... атрибут hidden должен быть истинным.
@RestController
@Api(tags="Building")
@RequestMapping(value="/v2/buildings")
public class BuildingsController {
@ApiOperation(value = "Get Building",hidden=true)
@GetMapping(value = "/{reference}")
public Account getBuildings(@PathVariable String reference) {
....
}