Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
14.12.2018, 14:49
|
|||
---|---|---|---|
|
|||
Rest Api nested object - best practice, есть ли? |
|||
#18+
Всем, привет. Народ, подскажите направьте. Допустим, есть микросервисное приложение. Есть форма, на которой, можно создать узера. На форме много вкладок, там и узер дату можно отметить, можно и детей его отметить, и паспорт и так далее. И по сабмиту, вся эта гигантская ДТО летит на сервер. Есть контроллер, который отрабатывает по определенному адресу и выполняет бизнес логику. В одной из книг, подглядел прием который позволяет справляться с overfetching, например GET /orders/1345?expand=consumer Получив подобный запрос, я подтащу данные по order, а также consumer. ОК, прием мне понравился, и с запросом GET вроде как вся понятно. Но непонятно, как быть с POST запросом, в котором nested объекты. Допустим, есть объект Код: java 1. 2. 3. 4.
Есть контроллер : Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Мне вот что не нравится/непонятно, я проверяю DTO на наличие в ней children, И глядя на аннотацию метода в контроллере @PostMapping("/"), я не могу четко сказать, что он будет внутри делать, будет он сохранять только user, или user+children, или user+children+other nested, а вот тут мне все понятно GET /orders/1345?expand=consumer Хочу узнать корректно, ли использование таких методов в контроллере, или может best практики подразумевают передачу в боди еще каких-то данных, которые говорят что именно сохраняем, ну или в хедере чего-нибудь. Например (случай когда в ДТО говорю что хочу сохранить): Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Или с хедерами Код: java 1. 2. 3. 4.
Подскажите плз лучшие практики, или где почитать, конкретно ответ на такой вопрос, не нашел. Или может я усложняю. Или может,технология какая есть....Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.12.2018, 14:59
|
|||
---|---|---|---|
Rest Api nested object - best practice, есть ли? |
|||
#18+
justcoder, 1. Можно прямо в dto добавить флаги поле isModified. 2. Можно каждый раз проверять отличие в ОРМ. Это его забота, не делать апдейт100 полей если сменился возраст. За связями следит ОРМ. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.12.2018, 16:10
|
|||
---|---|---|---|
Rest Api nested object - best practice, есть ли? |
|||
#18+
по ресту имхо нет какого то жесткого стандарта. как кстати и по много чему еще. есть лишь набор рекомендаций и всё. ИМХО тут скорее важно единообразие во всем (в рамках проекта) нежели, какое-то жесткое правило для всех приложений. я например, апологет того что если ты делаешь гет-ордерс -- то надо отдавать всё включая вложенное. если тебе надо что то исключить - добавляешь что исключить. типа как квери ленгвидж где ты отдаешь всё если нет критериев и отдаешь по критериям если они есть (в случае гет ордерс -- их нет) по постам аналогично. не пришли вложенные сущности - их не делаем. по путам интереснее - тут либо что не пришло -- то налл. либо юзай метод патч. там обновит только то что пришло. имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.12.2018, 19:41
|
|||
---|---|---|---|
|
|||
Rest Api nested object - best practice, есть ли? |
|||
#18+
Спасибо всем. В принципе, выберу какой-то стиль и буду придерживаться. Может graphql прикручу. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.12.2018, 19:45
|
|||
---|---|---|---|
Rest Api nested object - best practice, есть ли? |
|||
#18+
Графкуэль не панацея. но тогда зачем рест? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.12.2018, 20:22
|
|||
---|---|---|---|
Rest Api nested object - best practice, есть ли? |
|||
#18+
justcoder, Хороший стиль FullRest а намешивание технологий по желанию программиста это как раз отсутствие стиля. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.12.2018, 20:48
|
|||
---|---|---|---|
|
|||
Rest Api nested object - best practice, есть ли? |
|||
#18+
Да я только по графкл пару презентаций просмотрел, Особо в продукт не вникал. Из того, что увидел понравился. Насчет намешивания, не соглашусь. Любая технология - инструмент. Я вообще гомогенных проектов не встречал. Инструмент решает задачу - юзай на здоровье. Те же микросервисы, не рестом едины, там вам и рест и мат вью и мессэджинг и еластик - все есть инструменты. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.12.2018, 21:56
|
|||
---|---|---|---|
Rest Api nested object - best practice, есть ли? |
|||
#18+
justcoder, Вот про микросервисы и анекдоты в сети. Что все их пишут, но никто не видел. Любишь прикручивать, прикручивай. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/search_topic.php?author=%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB+%D0%91%D0%B0%D0%BB%D0%B0%D1%88%D0%BE%D0%B2&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
99ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 861ms |
total: | 1072ms |
0 / 0 |