Предположим, у меня есть ресурс (скажем, класс), у которого есть-много ресурсов Студента.REST, как правильно обращаться с отношениями
Class
id: 1
name: A
subject: Maths
Student
name: Foo
surname: Bar
class: [?]
У меня есть 2 сценария для решения проблемы.
[1]: Включить новый студент
В этом случае лучшим решением было бы добавить идентификатор класса и опубликовать ресурс как
Student
name: Foo
surname: Bar
class: 1
Это делает сервер обработки на стороне очень легко, поскольку мой ресурс в основном является зеркалом таблицы db.
[2]: Список Студентов, каждый со своим классом. Например:
Student Name | Student Surname | Student Class | Class Subject
Foo1 Bar A Math
Foo2 Bar A Math
Foo3 Bar B Science
Здесь представление идентификатора не достаточно, чтобы отобразить все данные мне нужно, поэтому я мог
- (а) студенты нагрузки, с идентификатором класса, а также данные класса нагрузки в отдельный вызов
- (б) студенты нагрузки, с внедренными данными класса
в случае (а), еще один удаленный вызов необходим для загрузки данных класса, потому что мои студенты будут выглядеть
Students: [
{name: Foo1, surname: Bar, class: 1},
{name: Foo2, surname: Bar, class: 1},
{name: Foo3, surname: Bar, class: 2},
]
случая (б) представляется более целесообразным, так как мои студенты будут выглядеть
Students: [
{name: Foo1, surname: Bar, class: {id:1, name: A, subject: Maths}},
{name: Foo2, surname: Bar, class: {id:1, name: A, subject: Maths}},
{name: Foo3, surname: Bar, class: {id:2, name: B, subject: Science}},
]
Если я выбираю (а), я в порядке со сценарием [1], и у меня над головой с сценарий [2] (дополнительные вызовы для заполнения данных класса).
Если я выбираю (b), я в порядке со сценарием [2], но у меня проблемы с представлением сценария ресурса для сценария [1], так как я должен опубликовать полный ресурс класса в полезной нагрузке, например:
Student
name: Foo
surname: Bar
class: {id:1, name: B, subject: Science}
Вопрос1: Какой был бы наилучший подход?
Вопрос2: Можете ли вы указать какое-либо хорошее чтение об этом?
== EDIT ==
Question3: Что такое не RESTful в выше?
Это не вопросы о REST. Можете ли вы придумать более подходящие теги? –
Ухм, почему бы и нет? я спрашиваю о правильном подходе отдыха для представления ресурсов – brazorf
Итак, какой тип медиа вы определяете для представления указанных ресурсов? Какие отношения ссылок вы собираетесь использовать? Это вопросы, которые относятся к архитектуре REST-стиля. Вы, кажется, задаете вопросы о том, как отправлять данные по партиям по проводам, что хорошо ... но на самом деле это не имеет никакого отношения к REST. На самом деле вы можете утверждать, что использование идентификаторов, которые не являются URL-адресами, не является RESTful вообще. –