2015-10-23 2 views
1

Учитывая приложение, использующееЧто лучшая практика передать объект с REST из пружинной ботинке угловых

  • Spring Ботинок на стороне сервера (с спящим режимом, шаблоном DAO и БДОМ Oracle)
  • AngularJS на на стороне клиента

  • REST API для связи (Spring REST) ​​

Что м общий подход к передаче данных? В моем предыдущем проекте я использую DTO (с бульдозером), но это сотни дополнительных классов и трата времени разработки, и я ищу сильную альтернативу.

Я слышал о Джексоне?

Создать JSON вручную? Сделал мою сущность сериализуемой и отправил их напрямую?

Update 2018

2 года после этого, я м до сих пор используют DTO класс сериализован в JSON с Джексоном во всем моем проекте, используя пружинный данные не точка здесь, возвращая объект, который является объектом БД не очень хорошая практика, вы можете использовать @JsonIgnore для некоторых свойств ваших объектов, но это не очень гибко. Вы можете использовать карту, которую вы хотите или сделали вручную, MapStruct, который используется в великолепном проекте JHipster, кажется хорошим.

ответ

2

Вы должны посмотреть на Spring Data JPA с Spring Data REST. Я использую его с угловым, и очень просто разоблачить вашу бизнес-модель как Restful Endpoints. Вы можете использовать Hibernate в качестве поставщика JPA. И с Spring Boot вы можете легко создать проект, который объединяет все это, поэтому вам не нужно ничего делать. Это может сэкономить вам много времени.

Процесс заключается в следующем:

  1. Вы создаете объект (модель)
  2. Вы создаете JpaRepository

End там у вас есть. Создается конечная точка Restful.

В передней части я использую Restangular. Также во многих случаях вы можете избежать использования DTO и использовать excerpts and projections.

Прочтите это руководство Accessing JPA Data with REST.

+0

Вы используете Тимелеаф и BootStrap? Я хочу объединить их с AngularJS, это возможно и необходимо? – mikezang

+0

Спустя 2 года я все еще использую класс DTO, сериализованный с помощью jackson во всем моем проекте, используя весенние данные не здесь, возвращая Entity, который является объектом DB, не является хорошей практикой, вы можете использовать @JsonIgnore для некоторого свойства ваших сущностей, но это не очень гибко. – amdev