BLOG

Dominando a Arquitetura de API: Fundamentos da API

Miniatura de Byron McNaught
Byron McNaught
Publicado em 05 de dezembro de 2022


Interfaces de programação de aplicativos, ou APIs, estão na moda.

Alegrar

Embora as APIs não sejam novas, fenômenos recentes, como a transformação digital acelerada durante a COVID-19, integrações de software aprimoradas e esforços para reformular aplicativos legados para a nuvem, resultaram em uma proliferação contínua de APIs , impactando o gerenciamento, a segurança e até mesmo as escolhas arquitetônicas que as organizações fazem para ter sucesso na economia digital moderna.

As APIs, em essência, podem representar a ascensão das máquinas. Exceto que, felizmente, os humanos ainda têm controle sobre sua construção, gerenciamento e segurança (pelo menos por enquanto).

Robô

Fundamentalmente, na “linguagem de API” (por assim dizer), o consumidor geralmente envia consultas ou solicitações ao produtor , por meio de interfaces unificadas que consistem em vários padrões, esquemas e especificações.

Por exemplo, o Serviço Nacional de Meteorologia (o produtor ) contém dados meteorológicos diários. O aplicativo de clima no seu telefone (o consumidor ) chama, ou mais especificamente, consulta, este sistema por meio da API REST do WeatherKit e, em seguida, renderiza os dados por meio da interface do usuário do aplicativo de clima. Embora este seja um exemplo simples de um aplicativo popular usado por milhões de usuários , vale ressaltar que a comunicação máquina a máquina representa a maior parte do tráfego para experiências digitais modernas e é alimentada por APIs.

Leão

Há uma série de benefícios tecnológicos que se traduzem em valor comercial proporcionado pelas APIs:

Benefício da tecnologia Valor do negócio
Resumo da implementação subjacente de um aplicativo web. As organizações podem implantar rapidamente aplicativos móveis e arquiteturas baseadas em microsserviços.
Especifique tipos para que os desenvolvedores possam implementar consumidores de API por meio de ferramentas. Os líderes podem otimizar os processos de desenvolvimento para facilitar o tempo de colocação do produto no mercado.
Defina semântica/comportamento para modelar troca de informações consistente e previsível. Os parceiros podem desenvolver e monetizar integrações de terceiros.

Quando se trata da implementação de APIs, há uma série de considerações. Especificamente, com relação à modelagem, controle de versão e testes de contrato, que ajudam a desacoplar dependências e garantir a interoperabilidade durante o projeto, a construção e a manutenção.

Consideração Descrição Beneficiar
Modelagem A semântica ou comportamento para representar e estruturar a troca de informações. Gerenciamento simplificado de arquiteturas distribuídas.
Controle de versão Estratégias de governança para lançamento e manutenção durante todo o ciclo de vida da API. Máxima usabilidade e compatibilidade com versões anteriores.
Teste de contrato Interação definida e respostas esperadas entre o consumidor e o produtor. Interações determinísticas com integrações de negócios de terceiros.

Não há uma maneira certa ou errada de construir, gerenciar e proteger uma API. Na verdade, quando as APIs começaram a proliferar, tornou-se necessário padronizar o formato e a estrutura das APIs para consumi-las em escala. Entre na Iniciativa OpenAPI e na resultante Especificação OpenAPI (OAS). O Swagger foi a implementação de referência original da especificação OpenAPI, e a maioria das ferramentas agora convergiu para o uso do OpenAPI, que ainda mantém seu estilo (HA!)

Na verdade, uma API pode ser construída usando uma variedade de padrões, esquemas e especificações. Por exemplo, uma apresentação RESTful , um serviço gRPC e conexões em um esquema GraphQL .

Implementação Visão geral Benefícios Quando usar


A Transferência de Estado de Representação (REST) fornece um modelo arquitetônico leve para descrever interfaces unificadas, mais comumente aplicadas usando HTTP como o protocolo de transporte subjacente.

REST é de longe a implementação mais amplamente implantada de arquiteturas baseadas em API.

Relatório do estado da API do Postman 2022

  • O REST tem algumas regras muito básicas, com baixa barreira de entrada e um modelo de domínio forte, o que o torna relativamente simples de implementar.
  • Como um sistema em camadas, a complexidade dos sistemas por trás da interface REST é abstraída. Por exemplo, o consumidor não tem consciência de que está interagindo com um sistema de banco de dados por trás de um serviço web.
  • REST tem suporte flexível para tipos de conteúdo (incluindo JSON e YAML).
  • Quando a especificação OpenAPI é suficiente para compartilhar a forma e a estrutura das APIs com os consumidores.
  • Quando o cache precisa ser determinado dinamicamente com base em cabeçalhos HTTP, já que as solicitações do produtor para o consumidor são sem estado por padrão.
  • Ao estender um modelo de recurso para uma única API fornecida pelo produtor ou oferecer várias APIs na mesma URL base usando API Gateways.


GraphQL é uma linguagem de consulta e manipulação de dados de código aberto para APIs e um tempo de execução para atender a essas consultas com dados existentes (desenvolvido pelo Facebook e agora parte da Linux Foundation).
  • Fornece uma linguagem de consulta para consultar diversas fontes. 
  • Permite que os clientes solicitem exatamente os campos necessários, incluindo campos que abrangem diversas APIs, reduzindo o tempo de carregamento no primeiro acesso.
  • A linguagem de esquema especifica os tipos em APIs individuais e como as APIs se combinam, oferecendo a capacidade de fornecer uma única versão em todas as APIs, simplificando o gerenciamento de versões.
  • Como uma tecnologia complementar colocada sobre sistemas legados existentes para abstrair a complexidade. 
  • Quando um consumidor de API requer acesso uniforme, filtragem e consulta em uma ampla gama de serviços interconectados.
  • Com dispositivos móveis, que são limitados por telas menores e disponibilidade de rede.


gRPC é uma estrutura moderna, de código aberto e de alto desempenho de Chamada de Procedimento Remoto (RPC) sob a administração da Linux Foundation.
  • Alto desempenho e confiabilidade por meio do uso de HTTP/2, buffers de protocolo leves, cargas serializadas e implementações com estado.
  • Suporte plugável para balanceamento de carga, rastreamento, verificação de integridade e autenticação.
  • Alta funcionalidade de interface e interoperabilidade de mensagens com suporte de ferramentas avançadas para todos os idiomas. 
  • Para a última milha da computação distribuída para conectar dispositivos, aplicativos móveis e navegadores a microsserviços de back-end e para aplicativos multiplataforma com interação de dispositivos móveis para desktop/IoT.
  • Para tráfego entre contêineres ("Leste-Oeste").
  • Com interfaces externas ("Norte-Sul") que exigem streaming e para aplicativos de streaming como bate-papo, finanças, notícias. 

Com essa introdução aos fundamentos da API, exploraremos como construir, gerenciar e proteger a arquitetura da API em postagens subsequentes antes de juntar tudo, reformulando um aplicativo legado para a nuvem.

Proteção de aplicativo

Quer progredir? Baixe o eBook hoje mesmo:

Dominando a Arquitetura de API | O'Reilly eBook