@olijen

Как моделировать REST ресурсы и доменные объекты?

Планирую приложение на Yii2 + Angular2. Сервер и фронт будут разными приложениями, которые связываются с помощью REST.

0) Начинать надо с предметной области - думаю, тут хороших альтернатив нет. У меня получается, что предметная область ложится на реляционную модель, просто один бизнес-объект может быть абстракцией над несколькими таблицами. Т.е. коллекция телефонов в моделе юзера - это просто его св-во, массив, как вариант, а в представлении БД - это таблица юзера отдельно и таблица телефонов отдельно. Связь по внешнему ключу через JOIN. Но что-то тут меня смущает. Итак, буду благодарен за практический пример создания предметной области.

1) Но когда у меня есть объекты предметной области - являются ли они же и ресурсами в понимании REST? Или они не будут совпадать, так же, как доменные объекты не совпадают с их представлением в базе - таблицами? Как смоделировать предметную область и ресурсы для REST с минимумом лишних действий? Если кто может написать на примере нескольких сущностей - будет здорово, теория очень уж многозначна.

2) Если у меня есть на бекенде организованная предметная область, которая десериализуется и передаётся на клиент, будет ли это в сумме с HATEOAS большей частью предметной области для Angular приложения? Т.е. я передаю некоторый объект (ресурс) и в придачу к нему некоторые действия, которые ангуляр приложения может выполнять с этим ресурсом (может и не выполнять, может свои добавить, API ни к чему не обязывает).

Ох... архитектура - это знание о том, как мало ты понимаешь....
  • Вопрос задан
  • 316 просмотров
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Предметная область понятие весьма расплывчатое. Так что возможно мы говорим о разных вещах, но все же:
Все взаимосвязи и структура таблиц для REST не особо то будет отличаться от стандарных практик. Вам надо организовать все так, что бы этим было удобно пользоваться в рамках Yii и ActiveRecords. В БД таблицы user и phones и две модели, которые связаны между собой. И $user->phones в зависимости от hasOne или HasMany это будет объект или массив объектов. Вот такая схема и есть оптимальная для rest с yii2. Запросили телефоны, получили телефоны только или с связанными юзерами, запросили юзеров, получили юзеров с телефонами или без.
У меня складывается впечатление, что у Вас много теории в голове, но yii вы видели мельком. Потому как проблемы в Вашей проблеме нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы