View on GitHub

manual-da-engenharia-para-codar

Este é o manual para compromissos de "código com" a engenharia.

Orientações de Design de REST API

Objetivos

Decisões Comuns de Design de API

As diretrizes da Microsoft para REST API fornecem orientações de design que abrangem uma variedade de casos de uso. As seguintes seções são um bom ponto de partida, pois são considerações provavelmente necessárias em qualquer design de REST API:

Criando Contratos de API

À medida que diferentes equipes de desenvolvimento expõem APIs para acessar vários serviços baseados em REST, é importante ter um contrato de API para compartilhar entre os produtores e consumidores de APIs. O formato Open API é um dos formatos de descrição de API mais populares. Este documento Open API pode ser produzido de duas maneiras:

Abordagem Design-First

Uma abordagem Design-First significa que as APIs são tratadas como “cidadãos de primeira classe” e tudo em torno de um projeto gira em torno da ideia de que, no final, essas APIs serão consumidas por clientes. Com base nos requisitos de negócios, a equipe de desenvolvimento de API começa descrevendo primeiro os designs da API como um documento Open API e colabora com as partes interessadas para obter feedback.

Essa abordagem é bastante útil se um projeto envolver o desenvolvimento de um conjunto de APIs externamente expostas que serão consumidas por parceiros. Nessa abordagem, concordamos primeiro com um contrato de API (documento Open API), criando expectativas claras tanto para o produtor quanto para o consumidor da API, para que ambas as equipes possam começar a trabalhar em paralelo de acordo com o design da API pré-acordado.

Principais benefícios desta abordagem:

Planejando um Desenvolvimento Design-First:

  1. Identifique casos de uso e serviços-chave que a API deve oferecer.
  2. Identifique as principais partes interessadas da API e tente incluí-las na fase de design da API para obter feedback contínuo.
  3. Escreva definições de contrato de API.
  4. Mantenha um estilo consistente para códigos de status da API, versionamento, respostas de erro, etc.
  5. Incentive revisões por pares por meio de solicitações de pull.
  6. Gere o código de boilerplate do lado do servidor e os SDKs do cliente a partir das definições de contrato de API.

Pontos importantes a considerar:

Abordagem Code-First

Uma abordagem Code-First

significa que as equipes de desenvolvimento primeiro implementam o código da interface da API do lado do servidor, como controladores, DTOs, etc., e depois geram as definições de contrato de API a partir dele. Nos tempos atuais, essa abordagem é mais amplamente popular na comunidade de desenvolvedores do que a Abordagem Design-First.

Essa abordagem tem a vantagem de permitir que a equipe implemente rapidamente as APIs e também fornece a flexibilidade de reagir muito rapidamente a quaisquer mudanças inesperadas nos requisitos da API.

Principais benefícios desta abordagem:

Pontos importantes a considerar:

Como Interpretar e Aplicar as Diretrizes

O documento de diretrizes de API inclui uma seção sobre como aplicar as diretrizes, dependendo se a API é nova ou existente. Em particular, ao trabalhar em um ecossistema de API existente, certifique-se de alinhar com as partes interessadas uma definição do que constitui uma mudança quebra para entender o impacto da implementação de determinadas melhores práticas.

Não recomendamos fazer uma mudança quebra em um serviço que antecede estas diretrizes simplesmente para cumprir.

Recursos Adicionais