|
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:49 |
|
Rest Api nested object - best practice, есть ли?
|
|||
---|---|---|---|
#18+
justcoder, 1. Можно прямо в dto добавить флаги поле isModified. 2. Можно каждый раз проверять отличие в ОРМ. Это его забота, не делать апдейт100 полей если сменился возраст. За связями следит ОРМ. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2018, 14:59 |
|
Rest Api nested object - best practice, есть ли?
|
|||
---|---|---|---|
#18+
по ресту имхо нет какого то жесткого стандарта. как кстати и по много чему еще. есть лишь набор рекомендаций и всё. ИМХО тут скорее важно единообразие во всем (в рамках проекта) нежели, какое-то жесткое правило для всех приложений. я например, апологет того что если ты делаешь гет-ордерс -- то надо отдавать всё включая вложенное. если тебе надо что то исключить - добавляешь что исключить. типа как квери ленгвидж где ты отдаешь всё если нет критериев и отдаешь по критериям если они есть (в случае гет ордерс -- их нет) по постам аналогично. не пришли вложенные сущности - их не делаем. по путам интереснее - тут либо что не пришло -- то налл. либо юзай метод патч. там обновит только то что пришло. имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2018, 16:10 |
|
Rest Api nested object - best practice, есть ли?
|
|||
---|---|---|---|
#18+
Спасибо всем. В принципе, выберу какой-то стиль и буду придерживаться. Может graphql прикручу. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2018, 19:41 |
|
Rest Api nested object - best practice, есть ли?
|
|||
---|---|---|---|
#18+
Графкуэль не панацея. но тогда зачем рест? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2018, 19:45 |
|
Rest Api nested object - best practice, есть ли?
|
|||
---|---|---|---|
#18+
justcoder, Хороший стиль FullRest а намешивание технологий по желанию программиста это как раз отсутствие стиля. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2018, 20:22 |
|
Rest Api nested object - best practice, есть ли?
|
|||
---|---|---|---|
#18+
Да я только по графкл пару презентаций просмотрел, Особо в продукт не вникал. Из того, что увидел понравился. Насчет намешивания, не соглашусь. Любая технология - инструмент. Я вообще гомогенных проектов не встречал. Инструмент решает задачу - юзай на здоровье. Те же микросервисы, не рестом едины, там вам и рест и мат вью и мессэджинг и еластик - все есть инструменты. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2018, 20:48 |
|
Rest Api nested object - best practice, есть ли?
|
|||
---|---|---|---|
#18+
justcoder, Вот про микросервисы и анекдоты в сети. Что все их пишут, но никто не видел. Любишь прикручивать, прикручивай. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2018, 21:56 |
|
|
start [/forum/topic.php?fid=59&gotonew=1&tid=2121590]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
57ms |
get topic data: |
9ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 9ms |
total: | 171ms |
0 / 0 |