Post Redirect Получить шаблон и использовать его в сервисе на основе ресурсов RESTful при поддержке поиска - PullRequest
2 голосов
/ 12 марта 2010

Если у меня есть служба RESTful на основе HTTP, и я хочу разместить POST-ресурс поиска и использовать шаблон PRG для возврата URL-адреса ресурса-результата поиска, я должен сохранить ресурс-результат поиска на сервере.

Это хорошая идея?

Если я сохраню ресурс результатов поиска, как долго он сохраняется?

Могу ли я контролировать это с помощью какого-то HTTP-заголовка?

Приветствия

AWC

Ответы [ 2 ]

2 голосов
/ 12 марта 2010

Я не думаю, что REST или HTTP могут дать вам какое-либо руководство по этому вопросу. То, как долго должны сохраняться результаты поиска, зависит только от того, насколько они велики, как дорого они рассчитываются, насколько динамичны данные, как часто запрашиваются одинаковые результаты и сколько денег вы хотите потратить на получить представление.

Сказав это, вы можете использовать 410 Gone для интересного эффекта. Через некоторое время вы можете отбросить результаты, но сохранить параметры запроса и сохраненный URL ресурса. Если вы получите запрос на этот URL после того, как результаты будут отброшены, вы можете вернуть 410 Gone с параметрами запроса в теле. Клиенту может быть предложено решить, хочет ли он повторно выполнить запрос.

В зависимости от данных, вы можете даже скрыть повторный запрос от клиента. Однако, в зависимости от типа возвращаемых данных, которые могут вводить клиента в заблуждение.

0 голосов
/ 03 марта 2013

Вы заметите, что, когда вы выполняете поиск в Google, страница с результатами фактически содержит ваш поиск в URL-адресе, и если вы просматриваете форму на главной странице Google, эта форма на самом деле установлена ​​на GET.Таким образом, в сценарии поиска обычно используется только один запрос на получение, а не запрос на публикацию, поскольку вы используете его для «получения» результатов поиска на основе определенного запроса.

Событие «POST»может быть более полезным, когда вы «размещаете» данные, например, когда вы публикуете что-то на доске объявлений.Вы добавляете данные в базу данных, доску объявлений, профиль пользователя и т. Д.

Если получение результатов поиска является тяжелым налогом для вашей системы, то вам может понадобиться способ кэширования результатов на основепоисковый запрос, чтобы при получении запроса на получение этого слова результаты легче было собрать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...