REST зависимые контроллеры

Всё что касается построения API
Ответить
Richi
Сообщения: 33
Зарегистрирован: 2011.05.09, 13:23
Откуда: Новосибирск
Контактная информация:

REST зависимые контроллеры

Сообщение Richi »

Добрый день.
Подскажите пожалуйста как с точки зрения структуры проекта правильно реализовать зависимые контроллеры в REST?
Имею ввиду что например есть
GET /buildings– получить все здания
GET /firms– получить все фирмы
А мне нужно реализовать что-то вроде:
GET /buildings/<id>/firms - получить все фирмы в здании <id>
Вопросы:
1. Делать action внутри какого-то существующего контроллера? В каком: buildingsController или firmsController? Или быть может сделать какой-то отдельный контроллер?
2. Как правильно назвать action под это дело?

На просторах интернета нашел только вот такую статью https://habrahabr.ru/company/dataart/blog/277419/, где есть небольшая инфа про реализацию зависимого контроллера

Спасибо
http://gildman.ru - мой ещё совсем зелёный блог
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: REST зависимые контроллеры

Сообщение slavcodev »

Из описания задачи кажется "/buildings/<id>/firms" == "/firms с фильтром по зданию".
Т.е. кажется новый контроллер или новый экшн не нужен.
Жду Yii 3!
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: REST зависимые контроллеры

Сообщение SiZE »

slavcodev писал(а):Из описания задачи кажется "/buildings/<id>/firms" == "/firms с фильтром по зданию".
Т.е. кажется новый контроллер или новый экшн не нужен.
тоже так понял.
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: REST зависимые контроллеры

Сообщение SiZE »

Richi писал(а):На просторах интернета нашел только вот такую статью https://habrahabr.ru/company/dataart/blog/277419/, где есть небольшая инфа про реализацию зависимого контроллера
Из статьи про зависимости
GET /stations/555/departures — поезда, уходящие с вокзала 555.
В рамках Yii2 можно сделать так:
GET /stations/555/?expand=departures
Тогда мы получим объект станции с атрибутом expand содержащим список поездов.

Я использовал такой подход у себя.
Ответить