Estou usando org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.3
para adicionar documentação do swagger ao meu projeto. Eu queria adicionar um exemplo de resposta json, mas este é um arquivo json grande, então estou apenas pegando-o da pasta de recursos.
Veja como é o ponto final do controlador
@Operation(summary = "summary")
@ApiResponses(value = {
@ApiResponse(responseCode = "200",
description = "Response",
content = @Content(mediaType = "application/json",
examples = {
@ExampleObject(name="Resource response", externalValue = "static/Response.json"),
}
))})
@PostMapping
public ResponseEntity<Object> myapi() {
return new ResponseEntity<>(response, HttpStatus.OK);
}
Como você pode ver, estou obtendo a resposta de exemplo em json, externalValue = "static/Response.json"
mas quando carrego a página do swagger, ela será carregada a partir v3/static...
do que parece ser o padrão usado pelo springdoc/swagger.
Acho que estou sendo muito chato neste momento, mas é possível alterar essa URL base ou até mesmo removê-la /v3/
?
Sim, você está certo
v3
sobre o caminho padrão para documentos da API. Veja https://springdoc.org/properties.htmlVocê pode atualizá-lo em
application.yml
, se quiser.Presumo que
Response.json
esteja localizado emsrc/main/resources/static/
. Então parece que seu caminho externo ainda não está correto.O Spring Boot serve automaticamente arquivos de
src/main/resources/static/
baixo/
. veja: https://spring.io/blog/2013/12/19/serving-static-web-content-with-spring-bootVocê pode atualizar seu caminho externo para
ou para melhor organização do código - será melhor mover
Response.json
esrc/main/resources/static/api-docs/Response.json
atualizar o caminho externo para