Я прочитал немало статей и много документов Apigee и рекомендации по разработке API RESTful с прагматической точки зрения. Одна вещь, о которой я не могу понять, - это то, является ли создание объекта для потребителей API необязательным включением других ресурсов в один и тот же документ, является хорошим или плохим.Правила композитных ответов?
Мое шестое чувство, что следующее будет вообще избегать: -
/accounts?include=transactions
{ accounts: [
{ "id": "101",
...
"transactions": [ ... ]
},...
Не лучше иметь: -
/accounts
{ accounts: [
{ "id": "101",
...
"transactions": /link/to/transactions/for/acccount
},...
, а затем
/transactions
{ "transactions": [
{ "id": ...
Я не беспокоюсь о том, чтобы соответствовать пуристским принципам REST, например. HATEOS и т.д. Основные причины я принимаю эту точку зрения, потому что: -
- Чтобы дополнительно нагрузку
/transactions
в мой/accounts
означает, что это вводит связь между компонентами услуг, доставляющих API - это независимо от архитектуры (Монолит или Microservices)
Является ли это справедливым аргументом/подходом?
Почему бы не иметь обе? Если есть ссылка между моделями 'account' и' transaction', то уже существует связь, которая не зависит от API. –