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.
- Aplicar regras de negócio diretamente no servidor
- Reduzir o processamento no lado do cliente retornando apenas dados relevantes
- Melhorar a performance da API e o tempo de resposta
- Fornecer resultados mais significativos e acionáveis para os clientes
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
- Use parâmetros de consulta para filtros opcionais
- Mantenha a lógica de filtragem no servidor para garantir consistência dos dados
- Documente todos os filtros disponíveis e seus efeitos
- Teste combinações de filtros para garantir resultados corretos
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.