Использует глагол в URL принципиально несовместимы с остальными?

Так давайте'ы сказать, что мы есть то, что не похоже, лучше представить в виде ресурса (статус процесса, который мы хотим приостановить, расчет без гражданства, которые мы хотим выполнить на сервере, и т. д.).

Если в дизайн API мы используем либо процесс/123/пауза или расчеты/Фибоначчи - это абсолютно несовместимо с отдыхом. Пока из того, что я читал, это не кажется, так долго, как эти URL-адреса могут обнаруживаться через HATEOAS и типы носителей стандартизированы.

Или должен я предпочитаю, чтобы положить действий в сообщение как ответ здесь?

Примечание 1: Я понимаю, что можно перефразировать некоторые мои примеры с точки зрения существительных. Однако я чувствую, что для specific существительных cases не работают, а также глаголы делать. Так я пытаюсь понять, если эти глаголы будут немедленно неспокойное. И если это так, то почему эту рекомендацию так строго и какую пользу я могу пропустить, не следовать в таких случаях.

Примечание 2: Ответ "от остальных не имеют каких-либо ограничений о том, что" должен быть правильный ответ (который будет означать, что такой подход расслабляет). Ответы "это зависит от того, кто вы спросите, что" или "не рекомендуется" и на самом деле не отвечая на вопрос. Этот вопрос подразумевает, что концепция отдыха существуют как вполне определенные общим термином два человека могут использовать, чтобы ссылаться на один и тот же набор ограничений. Если само предположение неверно и официальное обсуждение остальных не имеет смысла, пожалуйста, не говорите так.

Комментарии к вопросу (4)

В этой статье есть несколько хороших советов: http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api

Цитирую из статьи:

насчет действий, которые Дон'т встать на операции CRUD?

Это где вещи могут получить нечеткие. Существует ряд подходов:

  1. Реструктуризировать действие появилось как поле ресурса. Это работает, если действие не'т принять параметры. Например, активировать действие может быть сопоставлен логическое поле активации и обновляется с помощью патча к ресурсу.
  1. Относиться к нему как суб-ресурсов с RESTful принципы. Например, на GitHub'ы API позволяет звезды суть с /логи/:ИД/звезда и снять метку с удалить /логи/:ИД/звезда.
  1. Иногда у вас нет никакого способа, чтобы сопоставить действия в разумный спокойный структуры. Например, мульти-поиск ресурсов не'т действительно смысла быть применены к конкретному ресурсу's в конечную точку. В этом В случае /поиск имеет смысл, даже если это'т имя существительное. Это нормально - просто делать то, что'ы прямо с точки зрения интерфейса > у потребителей и убедитесь, что он'ы задокументировано четко, чтобы избежать путаницы.

Мне лично нравится предложение #2. Если вам нужно что-то пауза, что ты останавливаешь? Если это'ы процесс с именем, то попробуйте это:

/process/{processName}/pause
Комментарии (4)
Решение

Это's не строго о существительных и глаголов; его'ы о том, вы:

  • выявление ресурсов
  • манипулирование ресурсами через представления

Что'ы ресурс? Филдинг определяет ее так:

ключ абстрагирования информации в остальном-это ресурс. Любая информация, которая может быть названа может быть ресурс: документ или изображение, временной услуги (например, на "Сегодня'ы погода в Лос-Анджелесе и"), коллекция других ресурсов, а не виртуальный объект (например, человека), и так далее. Иными словами, любая концепция, которая может быть целью автора'ы гипертекстовая ссылка должна вписывается в определение ресурса. Ресурс представляет собой концептуальное отображение набора сущностей, а не объект, который соответствует отображение в любой конкретный момент времени.и"

Теперь на ваш вопрос. Вы можете'т достаточно взглянуть на URL-адрес и сказать: "такой-то и такой-то URL-адрес, принципиально несовместимо с отдыхом.&и" потому что URL-адреса в системе, остальные же't действительно важный момент. Это's более важно, что процесс URL-адреса /123/пауза " и " расчеты/Фибоначчи выявление ресурсов по вышеприведенному определению. Если они это сделают, нет'т отдыха нарушение ограничения. Если они Дон'т вы'вновь нарушив равномерное ограничение интерфейса отдыха. Ваш пример заставляет меня верить, что это не подходит под определение ресурсов и, следовательно, бы нарушать это ограничение.

Для иллюстрации того, что ресурс может быть в этой системе, можно изменить состояние процесса, разместив его на паузу-процессы сбора ресурсов. Хотя это может быть необычный способ работы с процессами, она's не принципиально несовместимы с остальными стиле.

В случае расчетов, сами расчеты могут быть ресурсом и этот ресурс может выглядеть так:

Request:
GET /calculations/5

Response:
{
  fibonacci: 5,
  prime-number: true,
  square-root: 2.23607
}

Хотя опять-таки, что'с несколько необычной концепции ресурса. Я полагаю, что более типичное использование может выглядеть так:

Request:
GET /stored-calculations/12381728 (note that URL is a random identifier)

Response:
{
  number: 5,
  fibonacci: 5,
  prime-number: true,
  square-root: 2.23607
}

хотя, вероятно, вы'd не хотите хранить дополнительную информацию о том, что ресурсы, помимо чисто расчет на то, что любой может сделать с калькулятором...

Response:
{
  number: 5,
  fibonacci: 5,
  prime-number: true,
  square-root: 2.23607,
  last-accessed-date: 2013-10-28T00:00:00Z,
  number-of-retrievals-of-this-resource: 183
}
Комментарии (3)

Это'ы считается плохой практикой, чтобы использовать глаголы в API-интерфейс REST.

Там's некоторые материалы на так и в другом месте о том, почему и как избежать, используя глаголы. Что;отдых на &quot, как говорится, есть много" от API, которые используют глаголы.

Для вашего "процесса" по API, я хотел бы сделать процесс ресурсе есть "государство" поля, который может быть изменен с "пут".

Предположим вам /процесса/в настоящее время$ИД` возвращает:

{
   state: "PAUSED"
}

Затем вы положить в `/процесс/идентификатор:

{
   state: "RUNNING"
}

что делает процесс изменения состояния.

В случае Фибоначчи, просто есть ресурс с именем уровни Фибоначчи, и использовать пост с параметрами (скажем Н первый Н числа Фибоначчи) в организме, или, возможно, даже "получить" с помощью запроса в URL-адресе.

Комментарии (10)

Метод HTTP такое глагол: получить, поставить, пост и т. д., В то время как URL-адрес всегда должен относиться к существительному (адресат действия). Выглядит это так: будет два глагола в предложении смысл? "и вам рассчитают" это бред, куда "Государственные" это хорошо и "сделать процесс" это лучше (на"государство" и будучи метаданных для процесса).

Комментарии (2)