Desenvolvimento da API REST - O que é primeiro contrato?

Neste artigo, examinaremos uma abordagem para o desenvolvimento de uma API REST baseada em contrato.

Ao desenvolver uma boa API REST, é importante ter ótimos microsserviços. A abordagem Primeiro contrato ajudará você a desenvolver um bom contrato antes de ser implementado. No entanto, não é tão simples!


Você vai aprender


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

API REST


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


Conceito de serviços da Web


Existem vários tipos de serviços da web, incluindo REST e SOAP. Para cada serviço, existem:

  • O provedor de serviços que fornece o serviço
  • O consumidor do serviço que o utiliza

O consumidor deve conhecer os detalhes do serviço prestado. Por esse motivo, um contrato deve ser concluído. O contrato de serviço define:

  • Quais são os meandros do serviço?
  • Em que URL o serviço está disponível?
  • Como enviar autorização?

Primeira abordagem do contrato


Com a abordagem " Primeiro contrato " (primeiro contrato), você primeiro define o contrato e depois implementa o serviço. Vejamos um exemplo.

Wsdl


Vamos primeiro examinar o uso do WSDL, uma linguagem de definição de serviços da web. Aqui está um exemplo de uso:



O WSDL é comumente usado com serviços da web SOAP / XML. Nesse caso, você geralmente define:



O que se entende por contrato?


Quando começamos a concluir um contrato, definimos o WSDL e o compartilhamos com o consumidor. Tudo isso pode acontecer antes mesmo de introduzirmos o serviço e disponibilizá-lo.

O contrato informa ao consumidor como é esperada a troca de solicitações e respostas. Depois que um contrato é concluído, um provedor de serviços pode trabalhar para fornecer um serviço consistente com o contrato. Um consumidor de serviço pode trabalhar no desenvolvimento de um aplicativo para seu uso.

Benefícios da primeira abordagem do contrato


As equipes podem se desenvolver em paralelo


Como a codificação é baseada em contrato, os provedores de serviços e os grupos de consumidores compreendem claramente a abordagem e os detalhes da comunicação. Portanto, o desenvolvimento pode ocorrer simultaneamente.

As equipes sabem o que esperar.


Como a codificação é baseada em um contrato, as equipes de produtores e consumidores têm uma idéia das expectativas um do outro. Como resultado, se o teste entre grupos não for possível devido a diferentes taxas de desenvolvimento, o software stub pode ser usado para modelar o comportamento da outra parte com base no contrato.

Compatibilidade entre plataformas


Como os parâmetros de serviço dependem apenas do contrato, a estrutura de software real usada para desenvolver o serviço não importa muito. O provedor de serviços e o consumidor de serviços podem usar diferentes tecnologias.

Permite a reutilização de esquemas


Os esquemas usados ​​para definir um contrato de serviço estão bem definidos no WSDL. Portanto, se partes dos serviços forem repetidas em outros serviços, os esquemas correspondentes também poderão ser reutilizados.

Desvantagens da primeira abordagem do contrato


Custos iniciais adicionais necessários


A maioria desses custos será centrada em um contrato de serviço. Você deve garantir que o contrato esteja claramente definido e não mude com muita frequência.

Mecanismo de renovação e intercâmbio de contratos


Durante o período de uso do serviço, se você atualizar o contrato, ele afetará todas as outras partes interessadas. Portanto, deve haver um mecanismo apropriado para transferir alterações para diferentes consumidores.

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

Sumário


Neste artigo, discutimos a abordagem Primeiro contrato no contexto de serviços da web.

Leitura adicional


Desenvolvimento rápido de aplicativos com a primeira abordagem da API usando o gerador de API aberta

Implementando uma metodologia de design de primeira API

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


All Articles