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'