Documentando minha API #1 — API Blueprint + Aglio

Mexer num projeto cuja API não tem documentação é um sofrimento… ter que vasculhar no código do projetos os endpoints e entender o que é possível fazer com cada um deles é um trabalho desnecessário, e seria resolvido de forma simples com uma bendita do…


This content originally appeared on DEV Community and was authored by Allan Ramos

Mexer num projeto cuja API não tem documentação é um sofrimento… ter que vasculhar no código do projetos os endpoints e entender o que é possível fazer com cada um deles é um trabalho desnecessário, e seria resolvido de forma simples com uma bendita documentação :(.

Já diz a frase:

Uma API documentada é uma API feliz

Eis que chega a minha hora de fazer um projeto novo, e não posso cair na mesma mancada de deixar o código ser a fonte de entendimento da API.

Como especificação para a construção dessa documentação, optei pela API Blueprint. Criada pela Apiary(Oracle), tem a vantagem de ser escrita utilizando Markdown, facilitando a leitura.

Começando

Seguindo o padrão da API Blueprint, podemos escrever nossa documentação em Markdown ou com a extensão .apib. Optei pela segunda, já que é possível encontrar extensões para meu editor de texto.

FORMAT: 1A
HOST: http://api.meninogaimeiro.com.br

# API do Menino Gaimeiro

Uma API pra você gerenciar a sua carteirinha xD.

# Group Games

## Games [/games]

### Criar games [POST]

+ Request Criar um game
    + Headers

            Accept: application/json
            Content-Type: application/json

    + Attributes

        + name (required)

+ Response 201 (application/json)
    + Attributes

        + id: 1 (number) - ID do game
        + name: Desperados 3 (string) - Nome do game

+ Response 400 (application/json)
    + Attributes

        + status_code: 400 (number) - Status code da Request
        + errors (array) - Objeto de erros
            + (object)
                + parameter_name: name (string) - Nome do parâmetro
                + message: field is required (string) - Tipo do erro

O exemplo acima faz o seguinte:

  • Seta a url da api parahttp://api.meninogaimeiro.com.br;
  • Cria um grupo de rotas chamada*games*;
  • Cria um grupo de rotas*Games /games.Nesse meu exemplo ficou repetido, mas poderia existir junto com essa rota o*Platforms /games/platforms;
  • Crio uma request informando seus headers e seus atributos;
  • Crio uma response informando seus status codes e seus payloads

Para ver como essa documentação é renderizada usando o Apiary,clique aqui.

Gerando a documentação

A API Blueprint é apenas uma especificação, não uma tecnologia. Para gerar uma documentação em meu projeto Node, acabei por utilizar a engine Aglio, que será responsável por interpretar os arquivos nesse formato e renderizar a documentação formatada.

Para isso, faça:

  • npm install -g aglio
  • aglio -i api.apib — theme-template triple -s

Esse último comando lerá o arquivo*api.apib*, gerando um template de 3 colunas em um servidor.

Eis que o resultado será algo como mostrado na imagem abaixo:

alt text

Pronto! Com isso já posso dar continuidade na documentação da API :).


This content originally appeared on DEV Community and was authored by Allan Ramos


Print Share Comment Cite Upload Translate Updates
APA

Allan Ramos | Sciencx (2021-04-14T20:46:13+00:00) Documentando minha API #1 — API Blueprint + Aglio. Retrieved from https://www.scien.cx/2021/04/14/documentando-minha-api-1-api-blueprint-aglio/

MLA
" » Documentando minha API #1 — API Blueprint + Aglio." Allan Ramos | Sciencx - Wednesday April 14, 2021, https://www.scien.cx/2021/04/14/documentando-minha-api-1-api-blueprint-aglio/
HARVARD
Allan Ramos | Sciencx Wednesday April 14, 2021 » Documentando minha API #1 — API Blueprint + Aglio., viewed ,<https://www.scien.cx/2021/04/14/documentando-minha-api-1-api-blueprint-aglio/>
VANCOUVER
Allan Ramos | Sciencx - » Documentando minha API #1 — API Blueprint + Aglio. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/04/14/documentando-minha-api-1-api-blueprint-aglio/
CHICAGO
" » Documentando minha API #1 — API Blueprint + Aglio." Allan Ramos | Sciencx - Accessed . https://www.scien.cx/2021/04/14/documentando-minha-api-1-api-blueprint-aglio/
IEEE
" » Documentando minha API #1 — API Blueprint + Aglio." Allan Ramos | Sciencx [Online]. Available: https://www.scien.cx/2021/04/14/documentando-minha-api-1-api-blueprint-aglio/. [Accessed: ]
rf:citation
» Documentando minha API #1 — API Blueprint + Aglio | Allan Ramos | Sciencx | https://www.scien.cx/2021/04/14/documentando-minha-api-1-api-blueprint-aglio/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.