Просто добавьте к Николас 'ответ:
Встраивание связанных ресурсов
Плюсы : спасает вас от поездки на сервер
Минусы : Хотя это спасает вас в первый раз и может содержать несколько строк кода, вы отказываетесь от кеширования: если что-то меняется в связанном ресурсе (который вы встроили), кеш клиента больше не действителен, поэтому клиент должен сделать запрос снова. Конечно, если вы используете кеширование HTTP. Что вы должны ...
Если вы хотите пойти по этому пути, вам лучше использовать что-то вроде GraphQL ... но подождите!
Собирается "чистый" HATEOS
Плюсы : ресурсы имеют независимые жизненные циклы; легче сделать так, чтобы каждый (тип) ресурса развивался без влияния на другие. Благодаря использованию кеша сверхурочно общая производительность значительно улучшается.
Минусы : больше запросов (при первом доступе), это может быть немного медленнее при первом доступе; еще немного кода для управления HATEOS ...
Лично я склонен использовать второй подход, когда это возможно.
Классическая веб-аналогия:
Если это поможет, классический веб-сайт - это просто еще один API, который обслуживает связанные с HTML ресурсы, а клиентское приложение - это сам браузер. Если вы когда-нибудь делали html / css / js, вы можете подойти к нему так же:
Для данного конкретного веб-сайта, учитывая его навигационную архитектуру ... и т. Д., Вы бы предпочли встроить все / часть css / js (связанные ресурсы) в html-страницы (основной ресурс) или нет.