Aula 24: Filtragem Avançada em GET com Regras de Negócio

Desenvolvimento de API REST: Construir, Testar e Solucionar Problemas

Nesta aula, exploramos técnicas avançadas para filtrar requisições GET usando regras de negócio. Esses métodos permitem que sua API retorne conjuntos de dados altamente específicos, adaptados às necessidades do cliente.

Por que a Filtragem Avançada é Importante

Consultas GET básicas podem retornar todos os registros ou filtros simples por ID ou categoria. A filtragem avançada permite que sua API aplique lógica de negócio e reduza a transferência de dados desnecessária.

Exemplo: Filtragem com Regras de Negócio

Suponha que você tenha uma API de e-commerce. É possível filtrar produtos com base em estoque, categoria e elegibilidade para desconto em uma única requisição GET:

GET /api/products?category=electronics&inStock=true&discountEligible=true

Esta requisição retorna apenas eletrônicos que estão em estoque e elegíveis para desconto, permitindo que o cliente exiba produtos relevantes imediatamente.

Implementando Filtragem Avançada em GET no ASP.NET Core

[HttpGet] public IActionResult GetProducts([FromQuery] string category, [FromQuery] bool inStock, [FromQuery] bool discountEligible) { var products = _db.Products.AsQueryable(); if(!string.IsNullOrEmpty(category)) products = products.Where(p => p.Category == category); if(inStock) products = products.Where(p => p.Stock > 0); if(discountEligible) products = products.Where(p => p.IsDiscountEligible); return Ok(products.ToList()); }

Usar parâmetros de consulta e filtragem condicional garante que a API aplique as regras de negócio de forma eficiente.

Boas Práticas

Conclusão

A filtragem avançada em GET permite que sua API retorne resultados precisos baseados em regras. Implementar essas técnicas melhora a performance, aplica a lógica de negócio e enriquece a experiência do cliente.