Qual é a vantagem dos clientes da API?

5

No meu novo trabalho, estou trabalhando em um aplicativo da Web CRUD básico existente no MVC + com um front-end angular.

A API do MVC tem uma especificação Swagger e é usada para gerar um cliente de API com repouso automático. Esse cliente de API é consumido pelo front-end.

Agora eu entendo a implementação técnica, mas estou me perguntando por que isso é feito? Qual é a vantagem de um cliente de API em vez de apenas chamar a API diretamente? Isso parece apenas um redirecionamento sem base para mim.

Alguém pode explicar quais são as decisões básicas de design sobre por que o cliente de API deve ser usado?

    
por rg13376077 14.07.2016 / 12:31
fonte

3 respostas

5

Vantagens:

  • Para APIs particularmente complexas, isso pode simplificar a implementação de desenvolvedores de front-end. Como exemplo, ele pode ocultar qualquer gerenciamento de autenticação / sessão, permitindo que o Front-End crie um objeto com os parâmetros de autenticação e, em seguida, use um método getData () que pode criar novas sessões conforme necessário.
  • Pode permitir que sua API seja mais complicada. Por exemplo, você poderia implementar algo para criptografar / comprimir / obscurecer dados em trânsito (embora admito que provavelmente existem exemplos melhores).
  • Ele incentiva Separação de dúvidas / código de arrumação no front-end. Em geral, é uma prática ruim misturar diferentes tipos de código, pois as coisas podem ficar muito complicadas de acompanhar à medida que o projeto cresce.
  • Permite que a API seja substituída no futuro. Talvez alguém reimplemente o cliente da API para apontar para outro serviço com dados semelhantes (por exemplo, alternando do Yahoo Stocks para a Google Stocks API). Ter o código do API Client já separado ajudará muito com isso.

A alternativa que você mencionou ("chame a API diretamente") como você fez isso? Você provavelmente escreveu o código para chamar a API, o que provavelmente seria um bom começo para o API Client. por que não deixar algo gerar isso automaticamente para você?

    
por 19.07.2016 / 16:46
fonte
0
  • Você pode usar clientes de API para abstrair alguns detalhes de HTTP de consumidores (URIs de recursos, manipulação de erros de resposta, etc.) Geralmente é mais simples chamar um método simples em um objeto e obter um resultado de volta do que construir um HTTP solicitar e gerenciar a resposta.

    Isso pode ser visto como alimentando os devs dos consumidores, mas pode ser adequado para equipes menos experientes ou desenvolvedores que não podem ser incomodados em usar uma API REST (que é reconhecidamente uma visão discutível).

  • Outra vantagem é que você tem mais controle sobre o acesso à sua API se tiver vários consumidores. Se você empacotar o cliente com um sistema de gerenciamento de pacotes, você obterá todos os benefícios em termos de política de versão e implantabilidade. Você também pode acompanhar com mais precisão qual consumidor usa qual versão, forçar os consumidores a especificar coisas ao usar o cliente para que você tenha estatísticas, etc.

por 19.07.2016 / 14:12
fonte
-2

Can anyone explain what are the basic design decision on why API client should be used. What are really nice use cases for such a pattern etc.

Se você tem três clientes, com diferentes implementações, como você separará seu código? Você vai escrever 3 sites diferentes e mesclar suas alterações? Você vai escrever parâmetros opcionais? Espero que não.

Um motivo para usar a rota da API é a separação de responsabilidades. A URL, link , explica muito bem como a nuvem ajudará com sua API REST. Espero que isso ajude!

    
por 14.07.2016 / 16:38
fonte