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'

Ā