Essa documentação é sobre filtros complexos aplicados no corpo de requisições
POST, se você estiver procurando por filtros simples, consulte a documentação de Filtros básico.Como Funciona
O sistema de busca avançada utiliza o corpo da requisição (payload) para enviar uma estrutura JSON com filtros e ordenações. Você pode combinar múltiplos filtros com diferentes operadores e lógicas.Estrutura da Requisição
A requisição deve ser enviada comoPOST com um corpo JSON contendo os seguintes campos:
Array de objetos de filtro. Cada filtro define um campo, operador, valor e operador lógico. A depender do filtro, argumentos adicionais podem ser necessários.
Array de objetos de ordenação. Cada ordenação define um campo e direção.
Número da página a ser retornada. Começa em 1. Consulte a documentação de Paginação para mais informações.
Quantidade de itens por página. Máximo: 100. Consulte a documentação de Paginação para mais informações.
Estrutura de um Filtro
Cada filtro no arrayfilters deve seguir esta estrutura:
Nome do campo a ser filtrado. Deve ser um campo válido definido pelo endpoint.
Operador relacional a ser aplicado. Veja a seção de Operadores Relacionais abaixo.
Valor a ser comparado. Pode ser string, número, boolean, null ou array dependendo do campo e operador.
Operador lógico que conecta este filtro ao anterior. Valores:
and ou or. Padrão: and.Array opcional de argumentos adicionais para filtros que requerem contexto extra (ex: filtros em relacionamentos específicos).
Operadores Relacionais
O sistema suporta os seguintes operadores relacionais:Operadores de Igualdade
equals(=): Igual anot_equals(<>): Diferente de
Operadores de Texto
contains(LIKE): Contém o texto (busca parcial)not_contains(NOT LIKE): Não contém o texto
Operadores Numéricos e de Data
greater_than(>): Maior quegreater_than_or_equals(>=): Maior ou igual aless_than(<): Menor queless_than_or_equals(<=): Menor ou igual a
Operadores de Nulo
is_null: Campo é nulois_not_null: Campo não é nulo
Nem todos os campos suportam todos os operadores. Para saber quais operadores estão disponíveis para cada campo, veja a seção de Descobrindo Campos Disponíveis abaixo.
Operadores Lógicos
Os filtros podem ser combinados usando operadores lógicos:and: Ambos os filtros devem ser verdadeiros (padrão)or: Pelo menos um dos filtros deve ser verdadeiro
Estrutura de Ordenação
Cada ordenação no arraysorting deve seguir esta estrutura:
Nome do campo a ser usado para ordenação. Deve ser um campo válido definido pelo endpoint.
Direção da ordenação:
asc (crescente) ou desc (decrescente).Array opcional de argumentos adicionais para ordenações que requerem contexto extra (ex: ordenar por campos em relacionamentos específicos).
Argumentos Adicionais
Alguns filtros e ordenações requerem argumentos adicionais para funcionar corretamente. Por exemplo, ao filtrar por um campo em um relacionamento específico, você pode precisar especificar qual relacionamento usar.Os argumentos variam por campo. Para saber quais argumentos são necessários para cada campo, veja a seção de Descobrindo Campos Disponíveis abaixo.
Exemplos Práticos
- Filtro Simples
- Filtros com Operadores Lógicos
- Consulta Completa
Buscar projetos com nome que contém “Joyce” e status igual a “1”:
Descobrindo Campos Disponíveis
Para descobrir quais campos estão disponíveis para filtragem e ordenação em um endpoint específico, você pode usar o endpoint de metadados:Tratamento de Erros
Campo Inválido
Se você usar um campo que não existe ou não está disponível:Operador Inválido
Se você usar um operador que não é suportado pelo campo:Argumentos Faltando
Se um filtro requer argumentos e eles não foram fornecidos:Error
Resumo
- Use
POSTcom corpo JSON para requisições de busca avançada - Defina filtros no array
filterscom campo, operador, valor e operador lógico - Defina ordenações no array
sortingcom campo e direção - Use operadores relacionais apropriados para cada tipo de campo
- Forneça argumentos adicionais quando necessário
- Use o endpoint de metadados para descobrir campos disponíveis
- Consulte a documentação específica do endpoint para detalhes