REST - получить случайное число GET или POST? - PullRequest
8 голосов
/ 07 июня 2010

Как правильно создать генератор случайных чисел в REST?

GET   RANDOM/

или ..

POST  RANDOM/

Сервер каждый раз возвращает другое случайное число.

Я вижу аргументы для обоих способов.

Ответы [ 3 ]

7 голосов
/ 07 июня 2010

Я бы сказал, что это то же самое, что и для возвращенной страницы, содержащей текущее время - и многие из них выполняются с помощью GET. Абстрактно, выбор случайного числа (или времени) состояния сервера не изменяется - и время, и случайные числа могут быть описаны как наблюдение за внешним событием. Например. http://random.org использовать атмосферный шум.

GET кажется наиболее подходящим, хотя кэширование необходимо будет отключить с помощью соответствующих заголовков, например,

Expires: <Current Time>
Last-Modified: <Current Time>
Cache-Control: no-cache, must-revalidate
Pragma: no-cache

Если вы хотите убедиться, что срок действия обслуживаемого контента уже истек:

Отметить ответ как "уже истек, "сервер отправления отправляет Дата истечения срока, которая равна дате значение заголовка (См. Правила для расчеты истечения в разделе 13.2.4.)

2 голосов
/ 07 июня 2010

Определенно ПОЛУЧИТЕ. Даже если он может изменить состояние на стороне сервера (если он использует псевдо-RNG), это всего лишь деталь реализации, о которой клиенту наплевать.

0 голосов
/ 07 июня 2010
  • определение REST-вызова с GET: результат должен быть таким же -> не GET.
  • определение REST-вызова с PUT: результат вызова может быть повторяемым, на сервере не должно быть проблем с этим -> использовать PUT

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

Почему бы не GET: результат GET-вызова может быть кэширован (cache-header, etag или прозрачные прокси), и вы не получите случайных результатов ...

...