Мне трудно найти правильный ответ на этот вопрос, поэтому я решу свою проблему здесь. Я работаю над RESTFul API. Естественно, у меня есть несколько ресурсов, некоторые из которых состоят из родительских и дочерних отношений, некоторые из которых являются автономными ресурсами. Где у меня возникли некоторые трудности, так это выяснить, как сделать вещи проще для людей, которые будут создавать клиентов на основе моего API.
Ситуация такая. Гипотетически у меня есть ресурс «Улица». На каждой улице несколько домов. Итак, улица: имеет множество домов и домов: принадлежит улице. Если пользователь хочет запросить HTTP GET для определенного домашнего ресурса, должно работать следующее:
http://mymap/streets/5/homes/10
Это позволяет пользователю получать информацию для дома с идентификатором 10. Прямо вперед. У меня вопрос, нарушаю ли я правила книги, предоставляя пользователю доступ к:
http://mymap/homes/10
Технически, этот домашний ресурс существует сам по себе без улицы. имеет смысл , что он существует как его собственная сущность без инкапсулирующей улицы, хотя бизнес-логика говорит об обратном.
Какой лучший способ справиться с этим?
EDIT! В духе того, чтобы стать хорошим гражданином StackOverflow, я вернулся с поддерживаемым блоком кода для того, как реализовать их выше.
map.resources :streets,
:has_many => :homes
:shallow => true
Это создаст оба типа маршрутов, которые я искал.