DEV Community

welingtoncassis
welingtoncassis

Posted on

Boas práticas no desenho de APIs - 11 Dicas úteis

1 - Organize APIs ao longo de recursos

  • Não usar verbos no nome da URI e sim substantivos que são os dados aos quais a API fornece acesso
  • Ex: GET /v1/public/stories, GET /v1/public/stories/{storyId}/series, GET /v1/public/series
  • Link de api de exemplo https://developer.marvel.com/docs

2 - Padronização da Api

3 - Evitar Api anêmicas

  • Pensar no negócio
  • Os endpoints devem refletir as Regras de negócio e não a base dados

4 - Criar Api simples

  • Evitar criar URIs grandes
  • O ideal é utilizar 3 níveis: coleção/item/coleção

5 - Considerar a atualização em lotes

  • Evitar que o Cliente tenha que fazer um loop e chamar várias vezes o endpoint para poder atualizar mais de um recurso

6 - Se precisar receber datas e horas utilize o padrão ISO 8601

7 - Documente sua API

  • A maioria dos devs irão verificar as docs antes de tentar qualquer esforço de interação
  • Ex de ferrameta: Swagger

8 - Sempre use HTTPS/SSL

  • Pense sempre em segurança

9 Versione suas APIs

  • Ex: https://api.com/v1/aulas

  • Considere o versionamento da sua API necessário toda vez que uma mudança resultar em breaking changes do lado do cliente.

10 - Crie e use paginação

  • Facilita a utilização educada do servidor
  • Usar limit e offset

11 - Utilize corretamente os códigos de retorno HTTP

Referências:

https://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api
https://martinfowler.com/articles/richardsonMaturityModel.html_

Image of Datadog

Create and maintain end-to-end frontend tests

Learn best practices on creating frontend tests, testing on-premise apps, integrating tests into your CI/CD pipeline, and using Datadog’s testing tunnel.

Download The Guide

Top comments (0)

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay