RESTful коллекции и контролирующие данные участника - PullRequest
3 голосов
/ 06 апреля 2011

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

У нас есть ресурс коллекции, который возвращает представление URI членов,а также поле заголовка Link с теми же URI (и пользовательским типом отношения).Часто мы находим, что нам нужны конкретные данные от каждого члена в коллекции.

  • В одном крайнем случае, мы можем сделать так, чтобы коллекция не возвращала ничего, кроме URI членов;Затем клиент должен запросить каждый URI по очереди, чтобы определить необходимые данные от каждого члена.

  • С другой стороны, мы возвращаем все детали, которые нам могут потребоваться в коллекции.Ни один из них не совершенен;первое может привести к большому количеству вызовов API, а второе может вернуть много потенциально ненужной информации.

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

Ответы [ 3 ]

3 голосов
/ 12 апреля 2011

Я предпочитаю ваш первый вариант.

В одном крайнем случае, мы можем сделать так, чтобы коллекция не возвращала ничего, кроме URI членов;клиент должен затем запросить каждый URI по очереди, чтобы определить необходимые данные от каждого участника.

Если вы хотите сократить количество HTTP-вызовов по проводной сети, например, вызывая службу с мобильного телефонаприложение (iOS / Android).Вы можете добавить дополнительный заголовок для включения дочерних ресурсов:

X-Aggregate-Resources-Depth: 2

Ваш код на стороне сервера должен будет агрегировать ресурсы до желаемой глубины.

1 голос
/ 12 апреля 2011

Похоже, вы пытаетесь заново изобрести PROPFIND ( RFC 4918, раздел 9.1 ).

0 голосов
/ 06 апреля 2011

Я регулярно храню подмножество элементов в каждом элементе ресурса коллекции.Как вы определяете различные подмножества, действительно зависит от вас.Независимо от того, делаете ли вы,

/mycollectionwithjustlinks
/mycollectionwithsubsetA 
/mycollectionwithsubsetB

или используете строки запроса

/mycollection?itemfields=foo,bar,baz

, в любом случае все они являются разными ресурсами.Я не уверен, почему вы считаете, что это влияет на самоописательное ограничение.

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