API - Filtrando por data de criaĆ§Ć£o (created) ou atualizaĆ§Ć£o (updated)
Quase todos Endpoints e Modelos de nossa api tem os campos ācreatedā que Ć© a data que a entidade foi criada, e o campo āupdatedā que marca a ultima data de atualizaĆ§Ć£o de uma entidade.
VocĆŖ nas suas buscas via API poderĆ” utilizar esses campos para filtrar resultados.
Vou utilizar como exemplo uma HTTP query de busca de carrinhos.
Possiveis parametros
Todos esses parametos precedem o campo com 2 underscore ā__ā, esses campos podem ser combinados, entĆ£o veja qual faz sentido para utilizar em sua logica.
'exact' Busca exata da Data
'gt' Greater Than (maior que)
'gte' Greater Than Equal (maior ou igual a que)
'lt' Lower Than (Menor que)
'lte' Lower Than Equal (menor ou igual a que)
'range' Entre datas dividido por virgula
'year' 'month' 'day' Parametros de filtro numerico, e podem ser combinados para facilitar a busca.
Filtrar por Dia, Mes e Ano
GET: {{url}}/api/store/cart/?filter[created__day]=19&filter[created__month]=8&filter[created__year]=2022
ParĆ¢metros:
filter[created__day] = Dia do filtro.
filter[created__month] = MĆŖs do filtro.
filter[created__year] = Ano do filtro.
Pode ser utilizado combinado ou separadamente.
Filtrar por gt gte lt lte
GET: {{url}}/api/store/cart/?filter[created__gt]=2022-08-19 00:00:00&filter[created__gte]=2022-08-20 00:00:00&filter[created__lt]=2022-08-19 00:00:00&filter[created__lte]=2022-08-20 00:00:00
ParĆ¢metros:
filter[updated__gt] = DateTime do filtro.
filter[updated__gte] = DateTime do filtro.
filter[updated__lt] = DateTime do filtro.
filter[updated__lte] = DateTime do filtro.
Filtrar por range
GET: {{url}}/api/store/cart//?filter[created__range]=2022-08-19 00:00:00,2022-08-23 00:00:00
ParĆ¢metros:
filter[updated__rage] = DateTime do filtro separado por virgula, do menor para o maior.
Ā
Exemplo
Exemplo de Curl com todos os parametros
curlĀ --locationĀ -gĀ --requestĀ GETĀ 'http://localhost:8000/api/store/cart/?filter[created__day]=19&filter[created__month]=8&filter[created__year]=2022&filter[created__range]=2022-08-19Ā 00:00:00,2022-08-23Ā 00:00:00&filter[created__gt]=2022-08-19Ā 00:00:00&filter[created__gte]=2022-08-20Ā 00:00:00&filter[created__lt]=2022-08-19Ā 00:00:00&filter[created__lte]=2022-08-20Ā 00:00:00'Ā \
--headerĀ 'Content-Type:Ā application/vnd.api+json'
Ā