Um API gateway é uma ferramenta de gerenciamento de API que atua como intermediário entre um cliente de API (a aplicação no dispositivo de um usuário) e serviços de backend (localizados em um servidor). Um API gateway apresenta um único ponto de entrada para chamadas de API.
Uma API, ou interface de programação de aplicativos, é um conjunto de regras ou protocolos que permitem que aplicações de software se comuniquem entre si para trocar dados, recursos e funcionalidades. A solicitação de dados de um cliente a uma API é conhecida como chamada de API.
Um API gateway recebe uma chamada de API (às vezes chamada de solicitação de API), a encaminha para um ou mais serviços de back-end, reúne os dados solicitados e os entrega ao cliente em um único pacote combinado. Ele também fornece análise de dados, camadas de proteção contra ameaças e outras formas de segurança para a aplicação.
Por exemplo, considere uma aplicação web de restaurante. Usando um notebook ou celular, um usuário pode fazer uma solicitação e acessar facilmente o cardápio do restaurante, ver fotos e avaliações, seu serviço de pagamento e um mapa para verificar sua localização, apesar de todas essas informações serem coletadas e fornecidas por diferentes microsserviços ou APIs de back-end. A solicitação enviada por meio da aplicação do usuário é recebida e executada por um API Gateway.
Os API Gateways podem ser implementados na nuvem, no local e em ambientes híbridos e são um componente importante do gerenciamento de API e da segurança de API. Os API Gateways ajudam as organizações a oferecer uma experiência de API constante, segura e satisfatória para os usuários.
O gerenciamento de APIs é o processo escalável de criar, publicar e gerenciar APIs dentro de uma empresa. Os API Gateways melhoram e simplificam as tarefas de gerenciamento, como roteamento de solicitações, balanceamento de carga e tratamento de erros. Os API Gateways também melhoram a observabilidade da API gerando registros de chamadas de API e possibilitando o uso de ferramentas integradas de análise.
A segurança de API refere-se às práticas e procedimentos que protegem as APIs contra uso indevido, ataques maliciosos e outras ameaças à cibersegurança. Os API Gateways ajudam a aplicar protocolos de segurança de API e podem ser usados para gerenciar autenticação, autorização e outras permissões e controles de acesso (por meio da confirmação das chaves de API ou integrando-se aos protocolos de autorização como OAuth, por exemplo), limitação de taxa (para proteção contra ataques como ataques de distributed denial-of-service) e criptografia de acordo com as políticas de segurança de API da organização.
Os API Gateways fornecem funções adicionais para aumentar a eficiência em uma empresa, ajudando a permitir um alto desempenho e uma alta disponibilidade para aplicações e serviços de back-end. Por exemplo, os API Gateways podem ser usados para armazenamento em cache, um processo no qual os dados comumente referenciados são armazenados localmente. Isso ajuda a melhorar o tempo de resposta e reduz a carga nos servidores. Eles também podem compactar respostas grandes em arquivos menores, reduzindo o consumo da largura de banda.
Eles também oferecem recursos de limitação de taxa, que definem um limite para a frequência com que um cliente pode enviar uma solicitação a um serviço em um determinado intervalo de tempo. Isso promove estabilidade, evita que os servidores fiquem sobrecarregados e ajuda a garantir que os clientes tenham acesso igual às APIs.
Os API Gateways e seus recursos ajudam as organizações a equilibrar o tráfego de APIs e as cargas de trabalho à medida que a organização cresce. Ao centralizar essas funções, os API Gateways ajudam a simplificar a forma como uma empresa desenvolve, implementa e gerencia APIs. Os gateways ajudam a melhorar o desempenho, a escalabilidade e a disponibilidade de aplicações e serviços e permitem que os desenvolvedores se concentrem mais na lógica dos negócios principais do que na administração de APIs.
As APIs possibilitam que as aplicações se comuniquem entre si e compartilhem dados dentro e fora do ambiente de TI de uma organização. As empresas modernas podem ter milhares de APIs e um gateway disponibiliza um ponto focal central, uma "porta de entrada", e uma interface padronizada que ajuda a gerenciar e rotear as chamadas de API de um local. Uma organização pode optar pelo uso de vários gateways, como muitas fazem, para possibilitar que diversos protocolos e padrões de segurança sejam aplicados a diversas APIs ou usuários, mas os mesmos princípios se aplicam.
Um API Gateway recebe todas as chamadas direcionadas aos endpoints de API da empresa, autentica as chamadas e as processa com base nas políticas organizacionais, encaminha para os serviços apropriados e, finalmente, agrega e retorna os resultados ao cliente da API que fez a chamada. Mesmo que vários serviços sejam solicitados e acessados por meio da chamada de API, o cliente recebe apenas uma resposta com todos os dados.
Um API Gateway oferece orquestração de fluxo de trabalho ao agregar as informações solicitadas de vários microsserviços, agrupar os dados e retorná-los ao solicitante em forma composta.
Um API Gateway lida com a tradução de dados e protocolos nos casos em que o dispositivo cliente e os microsserviços usam diversas linguagens, formatos (por exemplo, a solicitação é feita em JavaScript ou JSON, mas o microsserviço usa XML) ou protocolos (como solicitações HTTP versus solicitações gRPC).
Para entregar informações solicitadas com frequência, os API Gateways podem usar cache para acelerar o tempo de resposta da solicitação. Esses dados são armazenados em um cache separado para o gateway poder devolvê-los com rapidez sem precisar encaminhar o tráfego para outro serviço.
Os API Gateways podem monitorar e registrar solicitações, respostas e erros de API. Esses dados analíticos podem ser usados para entender melhor o tráfego e o desempenho da API, melhorar a resolução de problemas e fortalecer a segurança.
As APIs são cruciais para o fluxo de dados em sistemas modernos e os API Gateways ajudam a proteger as APIs e as aplicações, ajudam as organizações a reunir dados valiosos e ajudam a garantir o desempenho das APIs.
Os API Gateways podem tornar os processos mais eficientes. Todas as APIs de uma organização podem precisar concluir algumas tarefas comuns, além de sua função específica sempre que uma chamada para essa API é feita. Em um ecossistema que prioriza as APIs, em que as APIs são a base sobre os quais o software é criado, isso é extremamente comum.
Por exemplo, para cumprir com os protocolos de segurança de API, cada chamada de API pode precisar passar por um processo de autorização e validação. Ou para ajudar a garantir a largura de banda adequada, cada API pode precisar ser monitorada quanto às taxas de uso e tráfego. Se as APIs forem monetizadas, cada chamada poderá precisar ser roteada para um serviço de cobrança. Um API gateway pode lidar com todas essas tarefas.
Algumas chamadas de API exigem recursos de vários microsserviços diferentes; um API gateway divide essas chamadas, encaminha as solicitações para os serviços de backend apropriados e agrega os recursos solicitados em uma única resposta para o cliente. Isso evita que o cliente tenha que enviar uma chamada de API separada para cada microsserviço, simplificando o processo e reduzindo a carga de chamadas. As chamadas sempre vão para o mesmo local e o gateway organiza a recuperação e o retorno dos recursos.
Esse recurso é particularmente benéfico em ambientes de DevOps, em que as arquiteturas de microsserviço são frequentemente usadas para ajudar as equipes a acelerar o desenvolvimento e a entregar continuamente novas aplicações e serviços. Os microsserviços dependem de APIs para se comunicar e os gateways podem ser usados para orquestrar essa comunicação. Um API gateway também pode ajudar a garantir que cada chamada vá para o local correto quando várias versões de uma aplicação estiverem no mesmo servidor.
Os API gateways também são usados em modelos de computação sem servidor e outras abordagens de desenvolvimento nativas da nuvem. No modelo sem servidor, a infraestrutura e outros serviços de backend são executados sob demanda e desenvolvidos com APIs. Os gateways podem ser usados para gerenciar essa função.
Os ambientes de TI modernos são baseados em integração, cujo sucesso depende, em grande parte, das APIs. Quanto mais complexo for um ambiente de API e maior o tráfego que as APIs recebem, mais valor um API Gateway pode fornecer.
Uma arquitetura de microsserviços é uma abordagem de desenvolvimento de software em que as aplicações são compostas de partes menores e que funcionam de forma independente. Essas funções distintas podem ser implementadas de forma autônoma e se comunicar por meio de APIs. Eles são projetados para cumprir um único objetivo, com a intenção de serem agrupados como a base de programas maiores.
O roteamento de chamadas de clientes de API para esses microsserviços individuais é possível, mas não é muito eficiente e exigiria uma chamada separada para cada recurso. Um API Gateway permite que uma organização retorne os recursos solicitados com uma única chamada de API.
Funciona assim: o gateway recebe a chamada de API que requer comunicação com vários microsserviços. Ela divide a solicitação, encaminha cada segmento para os recursos apropriados e agrega os recursos em uma única resposta para o cliente da API. À medida que a organização aumenta o número de APIs e microsserviços usados nas funções empresariais, um API Gateway ajuda a reduzir o volume de chamadas e a complexidade do roteamento de chamadas, atuando como um ponto de entrada único e padronizado.
Vamos imaginar que um cliente queira extrair informações do produto de uma loja de comércio eletrônico criada usando uma arquitetura de microsserviços. Os detalhes do produto que o cliente deseja obter estão espalhados por vários serviços diferentes – um serviço para informações básicas sobre o produto, um serviço para preços, um serviço para inventário e assim por diante.
O API Gateway recebe a solicitação de informações do produto, a encaminha para extrair os dados de cada serviço necessário para atender à solicitação e, em seguida, compila esses dados e os envia de volta ao cliente como uma resposta completa.
O Kubernetes é considerado o padrão do setor para implementação e gerenciamento de microsserviços conteinerizados. O API Gateway pode interagir com um cluster Kubernetes conteinerizado de várias maneiras.
Quando implementado em mais de um cluster Kubernetes, o API Gateway pode servir como um balanceador de carga, direcionando o tráfego para o cluster correto para que nenhuma instância seja sobrecarregada. Quando implementado no edge de um determinado cluster Kubernetes, o API Gateway pode atuar como um controlador de ingresso. Os controladores de entrada direcionam o tráfego para um cluster Kubernetes, para os serviços solicitados e, em seguida, retornam novamente. Quando implementado em um cluster Kubernetes, o API Gateway pode atuar como uma malha de serviço. Uma malha de serviço lida com o tráfego que flui entre os Kubernetes Service, oferecendo balanceamento de carga e descoberta de serviços e é comumente usada para criptografia de ponta a ponta.
Além de permitir que as organizações roteiem e equilibrem o tráfego de APIs de forma mais eficaz, os API Gateways fortalecem o gerenciamento de APIs ajudando a:
Os API gateways podem ajudar a otimizar o roteamento de tráfego e o balanceamento de carga em serviços de backend gerenciando as chamadas de API por meio de um ponto de entrada centralizado. Essas medidas ajudam a manter a baixa latência. O API Gateway usa uma variedade de métodos para gerenciamento de tráfego de API que utilizam a largura de banda de forma mais eficiente e melhoram a experiência do usuário.
Um desses métodos é a limitação de taxa. As políticas de limitação de taxa especificam o número de solicitações (uma cota de solicitação) que um cliente específico pode fazer para uma API durante um determinado intervalo de tempo. Isso garante que os usuários tenham acesso igual às APIs e protege os serviços de back-end de ficarem sobrecarregados com solicitações.
A limitação de solicitações é um tipo de limitação que regula a taxa de solicitações que chegam a um servidor. Isso evita picos e ajuda as organizações a manter o desempenho e a estabilidade.
O API Gateway também pode realizar o balanceamento de carga dinâmico monitorando o tráfego constantemente para os serviços de backend. O API Gateway pode determinar a integridade de um servidor com base em métricas em tempo real e ajustar a forma como encaminha as chamadas para os serviços de backend.
As APIs são vulneráveis a ataques de cibersegurança, como ataques distributed denial-of-service (DDoS). Os ataques DDoS sobrecarregam os servidores com solicitações e tráfego malicioso, fazendo com que eles travem. O API gateway oferece suporte à limitação de taxas e a outras técnicas para ajudar a impedir ataques DDoS.
O API Gateway também pode ajudar a proteger as APIs monitorando o uso da API e fornecendo registros de tráfego. Alguns API Gateways também fornecem relatórios e análises de dados sobre as solicitações que estão sendo feitas a quaisquer APIs na infraestrutura de uma organização, permitindo que uma organização identifique o tráfego suspeito antes que um ataque aconteça.
O API Gateway não somente auxilia no gerenciamento do tráfego e no fornecimento de uma conexão segura com as APIs, mas também pode ser configurado para disponibilizar uma autenticação de API e uma autorização de solicitação, reduzindo a vulnerabilidade das APIs de uma organização. Por exemplo, os API Gateways são usados para verificar as chaves de API quando são recebidas chamadas de um cliente antes de conceder acesso aos recursos. Para uma maior segurança, os API Gateways podem ser usados com ferramentas como firewalls de aplicações da web (WAF), que monitoram, filtram e bloqueiam o tráfego HTTP malicioso.
O API Gateway centraliza o fluxo de chamadas de API, melhorando a visibilidade e a descoberta do serviço. Ele também oferece maneiras para que as APIs que usam diferentes protocolos e formatos de dados se comuniquem entre si.
Muitas APIs da web usam um estilo de arquitetura chamado REST (representational state transfer utilizada nas APIs REST), embora outros protocolos, como SOAP (simple object access protocol) e APIs WebSocket também sejam utilizados. Seja dentro de uma organização ou em chamadas externas direcionadas às APIs internas de uma organização, é comum ter APIs com vários protocolos e formatos de dados que precisam se comunicar entre si e solicitar recursos dos mesmos serviços de backend.
A conversão manual de cada solicitação levaria uma quantidade astronômica de tempo; os API Gateways ajudam a eliminar esse problema realizando a tradução de dados e protocolos, traduzindo automaticamente as solicitações e respostas para o formato necessário.
O API Gateway também facilita para os desenvolvedores a iteração e a implementação de APIs, pois os gateways podem gerenciar várias versões de uma API ao mesmo tempo. Os desenvolvedores podem então testar várias versões de uma API umas contra as outras antes de implementar ou manter uma instância de uma versão mais antiga da API para casos de uso específicos.
Embora os API Gateways possam ajudar a resolver problemas complicados de roteamento, a inclusão de um novo software de gerenciamento em qualquer organização também pode trazer novos desafios. Alguns desafios comuns incluem:
Embora os API Gateways possam ajudar a organizar a infraestrutura de API e a reduzir a latência, se receberem mais solicitações do que estão configurados para gerenciar e não tiverem recursos suficientes para lidar com o tráfego, eles poderão aumentar a latência.
As organizações devem confirmar se os API Gateways são aprovisionados e configurados para atender ao ambiente de API e às demandas de tráfego da empresa. Quando uma empresa aumenta a quantidade de APIs e serviços em uso em um dado momento, os recursos devem ser devidamente escalados e aprovisionados para evitar que os usuários sofram interrupções no serviço.
Um único ponto de entrada também significa que pode haver um único ponto de falha. A centralização de APIs tem inúmeras vantagens, mas a desvantagem é que o próprio gateway passa a ser um possível vetor de ataques ou infiltrações. Os problemas de gateway podem afetar todos os aspectos de uma empresa que dependem do acesso a APIs e serviços de backend.
Depois que uma organização tiver escolhido o API gateway que atende às suas necessidades específicas e criado seu ambiente de API em torno desse API gateway, pode ser caro e demorado migrar para outro fornecedor.
Além disso, embora os gateways possam tornar o uso da API mais econômico, o gateway também exigirá monitoramento e gerenciamento, o que custa tempo e dinheiro. Em alguns casos, uma organização pode optar por autohospedar um gateway de código aberto, em vez de usar um serviço gerenciado, para ter um controle mais preciso sobre suas várias opções. Se uma organização escolher uma opção de autohospedagem, isso aumentará os custos gerais da equipe de desenvolvimento.
Experimente o IBM® API Connect com uma avaliação sem custo ou converse sobre suas necessidades com os nossos especialistas. Se sua empresa está pronta para otimizar seu gerenciamento de APIs ou se você quiser saber mais, estamos à disposição para ajudar na sua transformação digital.
Descubra todo o potencial dos seus processos de integração com soluções impulsionadas por IA. Agende uma reunião com nossos especialistas ou explore a documentação de nossos produtos para começar.
Potencialize seus negócios com as soluções de mensagens seguras e de alto desempenho do IBM MQ. Comece sua avaliação sem custo ou fale com nossos especialistas para saber como o IBM MQ pode transformar suas operações.
Faça transferências de arquivos mais rápidas e seguras, de qualquer tamanho e distância. Experimente o IBM® Aspera hoje mesmo e simplifique os fluxos de trabalho dos seus dados com eficiência em alta velocidade.
Integre suas aplicações e automatize o trabalho com a plataforma de multinuvem híbrida IBM webMethods.
Libere o potencial dos negócios com as soluções de integração da IBM, conectando aplicações e sistemas para acessar dados críticos de forma rápida e segura.
Libere novos recursos e aumente a agilidade dos negócios com os serviços de consultoria em nuvem da IBM. Descubra como cocriar soluções, acelerar a transformação digital e otimizar o desempenho por meio de estratégias de nuvem híbrida e parcerias especializadas.
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com, openliberty.io