2013-09-13 3 views
0

Я проектирую restful api, используя nodejs/express.Упорядочить фильтр по времени

  • GET/отчеты (получить все отчеты)
  • PUT/отчеты/23 (отчет об обновлении ж/ид 23)
  • GET/отчеты/23 (получить отчет ж/идентификатор 23)
  • POST/отчеты (создать отчет)
  • уДАЛЕНИЯ/отчеты/23 (удалить отчет ж/ид 23)

Довольно стандартный материал до сих пор правильно. Теперь я хотел бы фильтровать по времени (свойство timestamp). Оглядываясь, я не могу найти хороших примеров спокойной фильтрации вовремя. У кого-нибудь есть хорошие примеры.

Лучшее, что я придумал это: /отчеты начать = 2013-07-13 & остановка = 2013-7-14

Что нормально, за исключением того, то я бы предположить, либо < = или < и> или> = и не может выразить в запросе что-то другое.

Есть ли способ представить следующие запросы?

  • метка времени> 2013-07-13 & & метка времени < 2013-07-14
  • метка времени> = 2013-07-13 & & метка времени < 2013-07-14
  • метка времени> 2013-07 -13 & & метка времени < = 2013-07-14
  • метка времени> = 2013-07-13 & & метка времени < = 2013-07-14

Заранее спасибо

ответ

1

Обеспечение > or >= как выражения не хороший дизайн REST. Я бы предложил использовать разные параметры запроса, такие как startDate - представить дату начала запрошенного фильтра duration - начиная с startDate с точки зрения дней. Тогда ваши запросы будут выглядеть так:

timestamp > 2013-07-13 && timestamp < 2013-07-14 --- startDate=2013-07-13&duration=0 
timestamp >= 2013-07-13 && timestamp < 2013-07-14 --- startDate=2013-07-13&duration=1 
timestamp > 2013-07-13 && timestamp <= 2013-07-14 --- startDate=2013-07-14&duration=1 
timestamp >= 2013-07-13 && timestamp <= 2013-07-14--- startDate=2013-07-13&duration=2 

Параметры запроса для REST API должны четко определять цель.

Смежные вопросы