Я создаю приложение на основе Spring Boot для предоставления JSON REST API. В этом приложении у меня есть отношение «один ко многим»: один заказ имеет несколько элементов (и один элемент принадлежит ровно одному заказу). Я хотел бы иметь следующие 4 конечные точки API:
К сожалению, я немного не понимаю, как моделировать свои ассоциации и / или методы контроллера, которые открывают конечные точки API. У тебя есть мне подсказки?
Большое спасибо!
Не уверен, что есть лучший способ сделать это, но мой подход заключался бы в моделировании и извлечении отношений с помощью Hibernate, но ленивым способом (https://howtoprogramwithjava.com/hibernate-eager-vs-lazy-fetch-type/).
В вашем контроллере вы возвращаете не объект, а класс DTO, который может быть очень похож на ваш объект. Этот DTO создается некоторым компонентом сопоставления, который обеспечивает логику включения или исключения связанных элементов и т. д.
Ваш первый выбор всегда должен заключаться в использовании шаблонов проектирования программного обеспечения. При разработке приложений, которые могут требовать удаленных подключений (или не требовать), есть одно, которое должно быть реализовано в вашем остальном api: Объект передачи данных.
Учитывая, что вы разрабатываете под Java / Spring Framework, вам следует взглянуть на библиотеку модельер и на это руководство.
Я успешно выполнил ту же задачу в своем rest api.
ПОЛУЧИТЬ / заказы; GET / orders / {id} не забудьте сделать присоединение к выборке в службе (или fetchType.Eager); GET / items; ПОЛУЧИТЕ / orders / {id} / items, если Вы хотите иметь товары для определенного заказа; GET / items / {id} отдельный элемент;