Как подойти к параметрам в RESTful API - PullRequest
1 голос
/ 10 марта 2012

Я создаю веб-сервис для мобильного приложения (Sencha Touch), и я зациклен на правильном подходе к этому (настолько субъективно, насколько это возможно «правильно»).

Вот моя ситуация.
Я использую календарь Google и отправляю его через мобильное приложение через JSON. У меня есть два варианта, и я не знаю, как это сделать.

Вариант 1 - передать calendarID через строку запроса. Это позволяет нам при необходимости поменять calendarID в конфигурации мобильного приложения.

Пример:
http://example.com/calendar/events?calendarID=xyz@group.calendar.google.com&callback=asdf

Вариант 2 - использовать файл конфигурации в веб-сервисе для обновления calendarID

Пример:
http://example.com/calendar/events?callback=asdf

Целесообразно ли иметь конфигурационную флешку с веб-сервисом или лучше иметь возможность передавать конфигурацию из мобильного приложения?

[примечание] календарь является общим для всех пользователей

Ответы [ 2 ]

1 голос
/ 10 марта 2012

Из двух вариантов первый вариант считается более соответствующим принципам REST.

URI предназначены для уникальных идентификаторов ресурсов.Если вы выбрали второй вариант, и пользователь A, и пользователь B будут иметь один и тот же URI для своих календарей (http://example.com/calendar/events?callback=asdf), даже если у них два разных календаря.

Ваше приложение будет полагаться на состояние файла конфигурации, чтобы определить, как реагировать на этот URI.REST обычно выступает за безгражданство .

1 голос
/ 10 марта 2012

Как правило, в системе RESTful вы не должны полагаться на какие-либо общедоступные данные, кроме тех, которые передаются вам обратно. Тем не менее, это звучит так, как будто это более частная реализация (частная) деталь, о которой публичные пользователи не будут беспокоиться. Итак, я не вижу проблем с сохранением этого в конфигурации, так как похоже, что он будет одинаковым при каждом запросе.

Это мое мнение, по крайней мере.

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