Desenvolvimento da API REST - qual é a abordagem Code First?

Neste artigo, continuaremos nos familiarizando com o desenvolvimento da API REST e consideraremos a abordagem Code-First.

O desenvolvimento de uma boa API REST é importante para ter bons microsserviços. A abordagem Code-First concentra-se na geração de um contrato a partir do código. Essa é a melhor abordagem possível?


Você vai aprender


  • Qual é a abordagem Code-First para desenvolver uma API REST?
  • Quais são os benefícios da abordagem Code-First?
  • Quais são as desvantagens da abordagem Code-First?
  • Quando você usa a abordagem Code-First?

API REST


Este é o quarto artigo de uma série de artigos sobre a API REST:


Qual é a abordagem Code-First?


Sempre que você desenvolve um serviço, como uma API REST ou API SOAP, pode escolher uma das duas abordagens:

  • Codifique primeiro e gere um contrato a partir do código
  • Primeiro contrato e desenvolvimento de código baseado em contrato

Vamos começar com um exemplo rápido para o Code First.

Exemplo da API REST do código de inicialização da primavera primeiro


Estamos desenvolvendo um serviço web RESTful usando o Spring Boot Framework para gerar a API. Por exemplo, na API retrieveAllUsers (), abrimos o URI " / users " e
retornamos todos os usuários (recurso / usuários ),
chamando o método de serviço.

Quando vamos a este URL, retornamos todos os usuários:


Outros métodos de serviço são definidos da mesma forma, cada um com seu próprio URI. Neste exemplo, pegamos o código e geramos documentação a partir dele. Esta documentação descreve como o usuário pode usar o serviço. Para fazer isso, usamos o formato de documentação Swagger:



O Swagger nos permite gerar documentação a partir do código. Por exemplo, aqui está o que o Swagger gera para solicitar a todos os usuários:



Ele exibe o tipo de mensagem de resposta que recebemos e o status da resposta que o acompanha. Você pode até ligar para este serviço da Swagger para obter uma resposta:



Você também pode enviar uma solicitação POST para " / users ":



O Swagger nos dirá como estruturar a mensagem de solicitação e especificar os formatos de campo individuais dentro dela. Ele também informará o tipo de resposta que você receberá, juntamente com o código de resposta. O que o Swagger gera a partir do código é chamado de contrato .

Benefícios do Code First


As principais vantagens dessa abordagem:

  • Contratos com o mínimo de esforço : gerar um contrato não requer esforço adicional. Este é apenas um subproduto do desenvolvimento de serviços, pois pode ser gerado automaticamente a partir do código.
  • Código e sincronização do contrato : como o contrato é gerado a partir do código, eles são sempre sincronizados entre si

Desvantagens do Code First


As desvantagens dessa abordagem são as seguintes:

Nenhum desenvolvimento paralelo


Um produtor de serviços e consumidores de serviços não podem se desenvolver paralelamente. Primeiro, você precisa desenvolver um serviço, depois gerar um contrato e somente depois disso poderá escrever um código do consumidor que cumprirá o contrato. Sem entender o contrato, o consumidor não pode ser desenvolvido.

Nenhum objetivo para as equipes


Como o contrato não pode ser conhecido antes do desenvolvimento do serviço, não há objetivo para várias partes interessadas no desenvolvimento. Portanto, há todas as chances de que as direções sejam desviadas e alterações desnecessárias sejam feitas, o que levará a um desperdício de esforço.

Sem compatibilidade de plataforma cruzada


Em algumas plataformas mais antigas, não é tão fácil gerar um contrato a partir do código. Como resultado disso, a incompatibilidade entre plataformas geralmente ocorre para contratos gerados.

Sobre esta questão, há um vídeo do autor.

Sumário


Neste artigo, exploramos a abordagem Code First para criar uma API REST. Embora a abordagem baseada em código seja eficaz do ponto de vista do desenvolvedor, ela enfrenta sérios problemas quando se trata do desenvolvimento conjunto de um fornecedor e um consumidor.

Leitura adicional


Desenvolvimento de API: Design-First ou Code-First?
Como desenvolver um serviço da Web RESTful na API da Web do ASP.NET

Source: https://habr.com/ru/post/pt483322/


All Articles