REST GET глагол с параметрами - PullRequest
       7

REST GET глагол с параметрами

10 голосов
/ 28 октября 2010

Я сижу и читаю кое-что о REST с моими коллегами по команде, мы пишем приложение RoR, которое собирается предоставить некоторые его функции остальному миру.

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

http://root.com/journalreports

Вы должны получить все отчеты из службы. Это работает как обаяние, но я запутался в том, как правильно создать ресурс, который раскрывает ряд журнальных отчетов. Должен ли я сделать это

http://root.com/journalreports?range=1/2/2010;5/2/2010

Или это незаконно, когда мы говорим о REST из-за? Range = помехи?

Какой самый правильный способ дать REST-ресурсам некоторые параметры?

Ответы [ 2 ]

15 голосов
/ 28 октября 2010

Параметры в порядке, особенно для поисковых ресурсов, как в вашем случае (запрос к журналу).

Я недавно ответил аналогичный вопрос (путь против параметра)

6 голосов
/ 28 октября 2010

REST никак не делает параметр запроса «недопустимым». Это архитектурный стиль, в основном для управления приложением путем обмена представлениями. Учитывая, что URI должны быть непрозрачными, между http://example.com/page/1 и http://example/?page=1, например, нет реальной разницы, например, что касается REST (в конечном итоге это зависит от отправляемых представлений, но выбор или стиль URI, как правило, являются детали реализации).

Важно то, как клиент узнает о URI ваших отчетов. HTML может сделать это очень хорошо с формами и параметрами запроса. Независимо от того, предназначен ли ваш сервис для использования браузером или другой агент, на самом деле не имеет значения, вы можете использовать те же принципы. Вы можете иметь HTML-формы (или эквивалентные, если ваш клиент не браузер), если вы хотите, чтобы он был более гибким, или с помощью явных ссылок на главной странице. (Возможно, вам будет проще разделить диапазон на два параметра, например, «от» и «до», если вы хотите, чтобы это было более динамичным.)

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