Tempo de leitura: 3 minutos

Fala devs, tudo sussa?

Esses dias um amigo veio pedir ajuda para exibir apenas endpoints específicos no swagger de uma Web Api feita com Net Core, como essa pode ser uma dúvida de outros devs resolvi compartilhar duas formas que conheço de atingir este objetivo.

 

Forma 1 – Usando ApiExplorerSettings

Ao utilizar esse atributo no nosso endpoint, o swagger irá ignorar esse endpoint na documentação.

Vamos supor um cenário onde temos dois controllers, PastelDeFrangoController e PastelDeCarneController, esses controllers estão estruturados conforme imagens abaixo.

 

 

 

Observe que em ambos os controllers estamos exibindo na documentação do Swagger UI os endpoints de salvar e excluir, vamos supor que não queremos exibir o excluir da Controller pasteldecarne, seria só fazer adicionar o atributo abaixo no método.

 

E com isso teríamos o seguinte resultado.

 

Quer ocultar por padrão todos os endpoints da controller e deixar somente alguns disponíveis? moleza, use o atributo como true na controller e como false nos endpoints que quer exibir, conforme o exemplo abaixo.

 

O resultado será o seguinte

E isso finaliza a forma 1, agora vamos para a forma 2.

 

Forma 2 – Usando a interface IDocumentFilter.

Caso tenhamos alguma condição para exclusão dos endpoints, podemos usar a interface IDocumentFilter do namespace Swashbuckle.AspNetCore.SwaggerGen para criar um filtro implementando o método Apply, usaremos este filtro na configuração do swagger, vamos supor que a nossa condição seja ocultar todos os endpoints de excluir, o nosso filtro poderia ficar da seguinte forma.

 

 

Para usar este filtro basta alterar a configuração do swagger que no caso desse projetinho de teste fica no Startup.

O nosso resultado será o seguinte:

Show de bola né?

O projeto de exemplo está no meu github, você pode acessar clicando aqui.

Se este artigo te ajudou, não esquece de dar um joinha e deixar 10 estrelas, isso não serve pra porcaria nenhuma, mas pelo menos me deixa feliz 😀

VN:F [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)
Exibindo apenas endpoints específicos no swagger com Net Core., 10.0 out of 10 based on 1 rating