Gerenciamento de Serviços e Rotas no Kong Gateway

Para disponibilizar APIs e microserviços através do Kong Gateway, é essencial compreander dois conceitos fundamentais: Services (Serviços) e Routes (Rotas). Esses objetos formam a base da configuração de proxy do gateway.

O que são Services e Routes?

No ecossistema do Kong, um Service é uma abstração que representa sua API upstream ou um microserviço de backend (por exemplo, um serviço de processamento de pagamentos ou uma API de dados). O atributo principal de um serviço é a sua URL, onde o Kong encaminhará as requisições recebidas.

Uma Route define como as requisições dos clientes são mapeadas para um Service específico. Ela determina os critérios de correspondência, como caminhos de URL (paths), métodos HTTP ou cabeçalhos. Um único Service pode estar vinculado a múltiplas Routes, permitindo diferentes formas de acesso ao mesmo backend.

O fluxo básico consiste em:

  1. O cliente envia uma requisição para o Kong Gateway.
  2. O Kong identifica a Route correspondente.
  3. O Kong encaminha a requisição para o Service associado àquela rota.

Registrando um Novo Serviço

Neste exemplo, configuraremos um serviço apontando para o httpbin.org, uma ferrramenta útil para testar requisições HTTP. Utilizaremos a Admin API do Kong, que por padrão escuta na porta 8001.

Para criar um serviço chamado api-servico:

curl -i -X POST http://localhost:8001/services \
  --data name=api-servico \
  --data url='http://httpbin.org'

Se a operação for bem-sucedida, o gateway retornará um status 201 Created com os detalhes do objeto criado em formato JSON.

Configurando uma Rota para o Serviço

Após definir o serviço, precisamos dizer ao Kong como os clientes podem acessá-lo. Vamos criar uma rota que intercepta requisições enviadas ao caminho /gateway-demo.

curl -i -X POST http://localhost:8001/services/api-servico/routes \
  --data 'paths[]=/gateway-demo' \
  --data name=rota-principal

Neste comando, associamos a rota rota-principal diretamente ao serviço api-servico criado anteriormente.

Validando o Roteamento

Agora que o serviço e a rota estão configurados, o Kong Gateway atuará como um proxy transparente. Para testar, faça uma requisição para a porta de entrada do proxy (geralmente 8000) usando o caminho definido na rota:

curl -i http://localhost:8000/gateway-demo/anything

O Kong receberá a requisição em /gateway-demo, removerá esse prefixo (conforme configuração padrão) e encaminhará o restante do path (/anything) para o upstream definido (httpbin.org). A resposta retornada pelo backend será repassada diretamente ao cliente.

Você pode verificar as configurações de qualquer serviço a qualquer momento consultando o endpoint da Admin API:

curl -i http://localhost:8001/services/api-servico

Tags: Kong Gateway API Gateway microservices Reverse Proxy REST API

Publicado em 8-24 17:46