Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Outro formato de página swagger-ui.html?

Rodrigo,

Primeiramente, parabéns pelos 2 cursos. Eles são excelentes e nos ajudaram muito na construção de 2 novas aplicações API Rest, que construímos. Eu havia escrito isso no outro post, mas como o tópico já estava fechado não sei se você chegou a ver.

Nós fizemos tudo de acordo com o curso e nossas aplicações estão show de bola, inclusive a documentação com o swagger.

Entretanto, nossos gestores solicitaram para que a gente adaptasse as documentações geradas para o formato de: http://www.transparencia.gov.br/swagger-ui.html

Alguma dica?

Grata, Suzane

2 respostas
solução!

Oi Suzane,

Que bom que gostou dos cursos e eles te ajudaram :)

Pra customizar o layout do swagger-ui você vai ter que:

  1. Criar no seu projeto uma pasta chamada swagger-ui, dentro do diretório src/main/resources
  2. Baixar a lib do swagger-ui: https://github.com/swagger-api/swagger-ui/releases/tag/v3.25.3
  3. Copiar o conteúdo da pasta dist para a pasta swagger-ui criada no projeto
  4. Fazer as alterações que você desejar nos arquivos html/css do swagger
  5. Criar uma classe configurando o Spring para ler os arquivos estaticos do swagger do seu projeto, ao invés do swagger original:
@Configuration
@EnableWebMvc
public class CustomSwaggerConfigurations implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry
            .addResourceHandler("/swagger-ui/**")
            .addResourceLocations("classpath:/swagger-ui/");
    }
}

Acho que isso já basta.

Valeu, Rodrigo!

Ajudou demais!

Tive que fazer mais algumas coisas:

  1. Usar as anotações @Api, @ApiOperation e @ApiResponses nas classes controller.
  2. Criar o método apiInfo() e chamá-lo após o .build no método do tipo Docker.
  3. Alterar o index.html para colocar o caminho correto "/v2/api-docs"

Então, ficou quase perfeito! Digo, quase igual ao solicitado pelos gestores. Agora, é só o colega designer, especialista em HTML e CSS dar o grau!

Só estamos com problemas ao gerar o novo projeto e subir no servidor que está apresentando problemas quando chamamos DOMINIO/PROJETO/swagger-ui/index.html, mas aí já seria outra dúvida!

Tá dando um erro de falha ao carregar API Definition, undefined /v2/api-docs.

O colega já gerou várias vezes, mas quando sobe no servidor tá dando esse erro.

No nosso localhost, tanto no meu quanto no do meu colega, funciona perfeitamente.

Agora que compreendi melhor o que estava acontecendo, postei outra dúvida sobre essa questão: https://cursos.alura.com.br/forum/topico-localizacao-da-documentacao-gerada-com-o-customswaggerconfigurations-113099

Grata, Suzane