ASP.NET API: Criando APIs Modernas e Escaláveis

16/09/2024

1. O Que é ASP.NET API?

O ASP.NET Core API é uma estrutura que permite criar APIs RESTful para fornecer dados e serviços para aplicações web, mobile ou qualquer cliente que precise se comunicar via HTTP. Ele é baseado no ASP.NET Core, a versão moderna e otimizada da plataforma .NET, projetada para oferecer desempenho, segurança e flexibilidade.

2. Criando uma API ASP.NET Core

Para criar uma API no ASP.NET Core, o primeiro passo é configurar um novo projeto de API. O Visual Studio ou a CLI do .NET permitem criar rapidamente um projeto utilizando o comando abaixo:

// Criando um novo projeto de API usando a CLI do .NET
dotnet new webapi -n MinhaApi

Esse comando gera uma estrutura de projeto que já inclui controladores básicos, o pipeline de requisições e o suporte para JSON via System.Text.Json.

3. Criando um Controlador

Os controladores são responsáveis por lidar com as requisições HTTP e retornar as respostas adequadas. Abaixo está um exemplo de como criar um controlador simples que responde a requisições GET:

// Exemplo de controlador em ASP.NET Core
using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("api/[controller]")]
public class ProdutosController : ControllerBase {
    [HttpGet]
    public IActionResult GetProdutos() {
        var produtos = new List<string> { "Produto 1", "Produto 2", "Produto 3" };
        return Ok(produtos);
    }
}

No exemplo acima, o controlador ProdutosController possui uma ação GetProdutos que responde a uma requisição HTTP GET retornando uma lista de produtos. O atributo ApiController facilita o mapeamento e o roteamento automático das ações do controlador.

4. Trabalhando com Requisições HTTP

Em uma API, é comum lidar com diferentes tipos de requisições HTTP, como POST, PUT e DELETE, além do GET. Veja um exemplo de como adicionar um novo produto usando POST:

// Exemplo de requisição POST para adicionar um produto
[HttpPost]
public IActionResult AdicionarProduto([FromBody] string produto) {
    // Lógica para adicionar o produto
    return CreatedAtAction(nameof(GetProdutos), new { id = 1 }, produto);
}

A ação AdicionarProduto recebe um parâmetro produto via [FromBody], indicando que os dados virão no corpo da requisição HTTP. A resposta usa o método CreatedAtAction para retornar o status 201 Created junto com o recurso recém-criado.

5. Validação de Dados

A validação de dados é uma prática importante ao construir APIs, garantindo que os dados recebidos estejam no formato correto. O ASP.NET Core oferece suporte para validações automáticas utilizando Data Annotations. Veja como adicionar validação a um modelo de produto:

// Exemplo de modelo com validação
public class Produto {
    [Required]
    public string Nome { get; set; }

    [Range(1, 100)]
    public decimal Preco { get; set; }
}

Ao usar o atributo [Required], garantimos que o campo Nome seja obrigatório, enquanto [Range] impõe uma restrição de valor para o campo Preco. Se a validação falhar, o ASP.NET Core retornará automaticamente um erro de 400 Bad Request.

6. Documentação com Swagger

Uma boa prática ao criar APIs é incluir uma documentação interativa que permita aos desenvolvedores testar e explorar os endpoints da API. O ASP.NET Core facilita isso com o Swagger. Para configurar o Swagger, adicione os pacotes necessários e registre o middleware no projeto.

// Adicionando o Swagger no projeto
public void ConfigureServices(IServiceCollection services) {
    services.AddSwaggerGen();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {
    app.UseSwagger();
    app.UseSwaggerUI(c => {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "Minha API v1");
    });
}

O Swagger gerará automaticamente uma página com a documentação interativa de todos os endpoints da sua API, facilitando o consumo da API por outros desenvolvedores.

Conclusão

Construir uma API com o ASP.NET Core permite criar serviços robustos, escaláveis e de alto desempenho. Desde a criação de controladores simples até a integração com bancos de dados e a implementação de segurança avançada, o ASP.NET Core API oferece as ferramentas necessárias para criar APIs modernas que atendam às necessidades de diversas aplicações. Seguir boas práticas, como validação de dados e documentação com Swagger, garantirá que sua API seja fácil de usar e mantenha um alto nível de qualidade.