DEV Community

Cover image for 📝 Comunicação da API .NET com API Kong
Danilo O. Pinheiro, dopme.io
Danilo O. Pinheiro, dopme.io

Posted on

📝 Comunicação da API .NET com API Kong

Integrar uma API .NET com API Kong é uma solução moderna e robusta para gerenciar APIs em arquiteturas de microsserviços. O Kong é um API Gateway altamente escalável que pode fornecer funcionalidades como autenticação, rate limiting, logging, e roteamento de tráfego. Neste artigo, vamos explorar como integrar uma API .NET com o Kong API Gateway de forma simples e eficaz.


🧰 Tecnologias Utilizadas

Tecnologia Descrição
Kong API API Gateway para gerenciar e proteger suas APIs.
.NET 6+ Framework moderno para desenvolvimento de APIs.
Docker Utilizado para configurar Kong e a aplicação .NET.

📐 Preparando o Ambiente

Primeiro, vamos configurar o Kong API Gateway utilizando Docker. Crie um arquivo docker-compose.yml:

version: '3'
services:
  kong-database:
    image: kong:latest
    restart: always
    environment:
      KONG_DATABASE: "off"
      KONG_DECLARATIVE_CONFIG: "/kong-config/kong.yml"
    volumes:
      - ./kong-config:/kong-config
    ports:
      - "5432:5432"

  kong:
    image: kong:latest
    restart: always
    environment:
      KONG_PORT: "8000"
      KONG_PROXY_ACCESS_LOG: "/dev/stdout"
      KONG_ADMIN_ACCESS_LOG: "/dev/stdout"
      KONG_ADMIN_ERROR_LOG: "/dev/stderr"
      KONG_ADMIN_GUI_HOST: "localhost:8002"
    ports:
      - "8000:8000"
      - "8002:8002"
    depends_on:
      - kong-database
Enter fullscreen mode Exit fullscreen mode

Inicie o Kong API Gateway com Docker:

docker-compose up -d
Enter fullscreen mode Exit fullscreen mode

⚙️ Criando a API .NET

Agora, crie um projeto Web API simples com .NET:

dotnet new webapi -n ApiKongDemo
cd ApiKongDemo
Enter fullscreen mode Exit fullscreen mode

Exemplo de controller básico para a API .NET:

[ApiController]
[Route("api/[controller]")]
public class HelloController : ControllerBase
{
    [HttpGet]
    public IActionResult Get()
    {
        return Ok(new { message = "Hello from .NET API!" });
    }
}
Enter fullscreen mode Exit fullscreen mode

Para rodar a aplicação .NET, utilize o comando:

dotnet run
Enter fullscreen mode Exit fullscreen mode

Agora, a API .NET estará disponível em http://localhost:5000/api/hello.


🌐 Integrando a API .NET com o Kong

Com a API .NET e o Kong configurados, o próximo passo é registrar a API no Kong e configurá-la para ser roteada. Para isso, usaremos o Admin API do Kong.

  1. Registrar a API no Kong:

Use o comando curl para registrar a API:

curl -i -X POST http://localhost:8001/services/ \
    --data "name=dotnet-api" \
    --data "url=http://host.docker.internal:5000/api/hello"
Enter fullscreen mode Exit fullscreen mode
  1. Criar um Route:

Depois de registrar o serviço, vamos criar uma rota que encaminha as requisições para a API:

curl -i -X POST http://localhost:8001/services/dotnet-api/routes \
    --data "hosts[]=localhost" \
    --data "paths[]=/api/hello"
Enter fullscreen mode Exit fullscreen mode

Agora, a comunicação será feita pela URL http://localhost:8000/api/hello.


📡 Testando a Comunicação

  1. Acesse a URL da API através do Kong: http://localhost:8000/api/hello

A resposta deve ser a seguinte:

{
  "message": "Hello from .NET API!"
}
Enter fullscreen mode Exit fullscreen mode

✅ Conclusão

Integrar a API .NET com o Kong traz vários benefícios, como gestão centralizada de APIs, controle de tráfego e autenticação. Usando o Kong API Gateway, é possível adicionar facilmente funcionalidades como rate limiting, autenticação e monitoramento sem alterar o código da API.

Além disso, o Kong permite um controle de tráfego escalável, ideal para arquiteturas de microsserviços em ambientes de alta demanda.


🤝 Conecte-se Comigo

Se você trabalha com .NET moderno e quer dominar arquitetura, C#, observabilidade, DevOps ou interoperabilidade, vamos conversar:

💼 LinkedIn
💻 Dev.to
✍️ Medium
📬 contato@dopme.io


¹⁴ Eu sou o bom Pastor, e conheço as minhas ovelhas, e das minhas sou conhecido.
João 10:14

Top comments (0)