Documentação de API .NET CORE com Redoc

dezembro 31, 2023 0 Comments

Muitos já devem conhecer o Swagger como solução principal na hora de documentar sua API utilizando o framework .NET CORE, mas recentemente andei pesquisando uma alternativa mais Sofisticada para apresentar a API que estou trabalhando, e um colega me falou sobre o Redoc.

Neste artigo, mostrarei os primeiros passos que usei para implementar essa ferramenta muito eficiente – e bem mais a frente do Swagger no quesito UI. No final, também disponibilizarei o reposítorio do Redoc caso você queira se aprofundar na documentação.

Apresentação

Abaixo, a imagem que demonstra como ficará sua API após a implementação do Redoc, note que a imagem representa o resultado de uma instalação simples, podendo mais tarde o desenvolvedor configurar conforme seu gosto, inclusive adicionar CSS customizado, como cita na documentação do projeto.

Apresentação documentação da API – Redoc

Instalação

Antes da instalação do Redoc, você precisa configurar seu projeto para gerar o XML de documentação e configurar também o Swashbuckle para gerar o JSON responsável pela montagem da interface, com isso você pode alternar entre o swagger e o redoc ou manter ambos em funcionamento.

  1. Gerando XML com a documentação
  • No projeto onde estão seus controllers, se estiver utilizando o Visual Studio, clique com o botão direito e vá em propriedades, logo após isso, clique na aba build e marque a opção XML Documentation File, conforme mostra a imagem abaixo.
Gerando o xml no build do projeto.
  • Salve e feche o arquivo.

2. Configurando Swashbuckle para Gerar o JSON

  • Instale a versão mais recente do Swashbuckle no projeto que contenha sua classe Startup.cs
  • Neste Site você encontra o projeto disponível para ser baixado do Nuget. Veja também se seu framework .NET CORE possue os requisítos de dependência.
  • Copie o código abaixo e coloque no método ConfigureServices da classe Startup.cs, ele será responsável por gerar a documentação a partir do XML que a gente configurou utilizando o caminho do arquivo relativamente.
  • Utilize o assembly: using Swashbuckle.AspNetCore.Swagger;
  • Caso esteja em dúvida aonde colocar o código, aconselho deixar sempre no final do método.

3. Instalando o Redoc

  • Instale a versão mais recente do Redoc no projeto que contenha sua classe Startup.cs
  • Neste Site você encontra o projeto disponível para ser baixado do Nuget. Veja também se seu framework .NET CORE possue os requisítos de dependência.
  • Cole o código abaixo no método Configure da classe Startup.cs sempre antes da chamada de método app.UseMvc();
  • Não utilize o app.UseSwaggerUI caso queira somente que o Redoc funcione como ferramenta de documentação, caso queira que o Swagger também funcione em paralelo, então mantenha esse método.
  • Finalizada as instruções de instalação, agora você poderá documentar suas Actions, como o exemplo abaixo. Para mais detalhes, dê uma olhada nas referências.
Documentação aplicada na Action.
Documentação mostrada na interface.

Redoc VS Swagger

É bem notável o ganho de estilo que sua documentação obtém com o Redoc, mas ele também possui algumas desvantagens em relação ao Swagger, e que até o momento, não encontrei nenhuma solução para esses pequenos problemas, por isso sintam-se à vontade para sugerir melhorias caso saibam de algo.

  • As Actions dos seus controllers não podem ter o mesmo nome, pois causa uma confusão na hora da seleção quando você está navegando entre elas na interface.
  • Não é possível realizar Testes através da interface, como disponibiliza o Swagger.

Repositórios

Referências