Можете ли вы создать действительно RESTful сервис, который принимает много параметров? - PullRequest
2 голосов
/ 21 марта 2011

Прочитав статью о REST ("Restful Grails"), у меня сложилось впечатление, что невозможно действительно соответствовать стилю REST в сервисе, требующем большого количества параметров. Это так? Все примеры, которые я видел до сих пор, подразумевают, что настоящие сервисы в стиле REST «без параметров». Использование параметров будет RPC-ишем, а не RESTful.

Если говорить более конкретно, скажем, у нас есть служба, которая возвращает графические данные для цен на акции, и эта служба должна знать дату начала, дату окончания, валюту, название акции и все, что еще может быть применимо. В любом случае, по крайней мере 4-5 параметров необходимы для получения необходимой информации. Я хотел бы представить URL-адрес примерно так: / stocks / YAHOO? StartDate = "2008-09-01" & endDate = ... («YAHOO» - это название готовой акции).

Будет ли это действительно REST или это больше похоже на RPC, что автор вышеупомянутой статьи называет "GETful" (т.е. просто rpc низкой церемонии)?

Ответы [ 3 ]

4 голосов
/ 22 марта 2011

Вы можете увидеть строку запроса в качестве фильтра для ресурса, который вы получаете. Здесь ваш ресурс - это цены на акции Yahoo. Выполнение GET для этого ресурса даст вам все доступные данные или наибольшее количество последних. Строка запроса фильтрует цены, которые вы хотите. Содержание обсуждения позволяет вам изменить представление, например, граф png, файл csv и так далее. Чтобы добавить цену, просто отправьте представление (например, CSV) на тот же ресурс.

«Успокоение» на самом деле не в самом URL, так как URI скрыты для клиента, но в том, как вы взаимодействуете с самими ресурсами, идентифицированными по их URI

1 голос
/ 21 марта 2011

Не стесняйтесь использовать столько параметров, сколько вам нужно для определения ресурса, к которому вы хотите получить доступ. REST не волнует.

0 голосов
/ 21 марта 2011

Почему вы думаете, что это невозможно?

Google использует REST для своих графиков API, и они принимают много параметров:

http://chart.apis.google.com/chart?cht=bvg&chs=350x300&chd=t:20,35,10&chxr=1,0,40&chds=0,40&chco=FF0000|FFA000|00FF00&chbh=65,0,35&chxt=x,y,x&chxl=0:|High|Medium|Low|2:||Task+Priority||&chxs=2,000000,12&chtt=Tasks+on+my+To+Do+list&chts=000000,20&chg=0,25,5,5

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