|
|
|
Вопрос по REST
|
|||
|---|---|---|---|
|
#18+
У меня связка такая Spring+Hibernate+JSF. Хочу сделать api чтобы можно было с другого приложения использовать. Пробую разбираться с jersey. Пока мне нужна по сути работа с Hibernate. Например у меня есть AccountRepository. Я могу на его базе создать api? Просто аннотациями указываем например и одновременно доступ и через api и обычный вызов. Так можно сделать? Но вот думаю если даже получится так сделать что на счет того если нужно будет не только Hibernate. Придется делать в разных местах что не гуд но зато дублирования будет меньше. В общем я в замешательстве. Подскажите кто сталкивался как лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2015, 18:28 |
|
||
|
Вопрос по REST
|
|||
|---|---|---|---|
|
#18+
А чем не устраивает связка Spring MVC + Spring Data? Обращения к данным лучше все же через сервис организовать, а не непосредственно в repository. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2015, 01:57 |
|
||
|
Вопрос по REST
|
|||
|---|---|---|---|
|
#18+
z3r9, Вам нужно больше абстрактных слоёв. Есть слой JSF - это View. Есть слой, который предоставляет API для JSF что-то вроде контроллера. Есть слой бизнес-логики (Service, или Transaction Script) это сама функциональность приложения в виде Java API. И есть слой Repository, который предоставляет доступ к данным. Давать доступ к репозиторию особого смысла нет. Во-первых тогда бизнес-логику нужно копипастить. Во-вторых микс фреймверков отвечающих за разные слои не всегда просто запустить на одном слое\классе. Вам нужен отдельный "Фасад", который будет вызывать слой бизнес-логики, но при этом скрывать лишнюю функциональность и (как это будет по-русски, to expose) функциональность бизнес-логики в виде REST. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2015, 09:57 |
|
||
|
Вопрос по REST
|
|||
|---|---|---|---|
|
#18+
Blazkowicz , у меня сейчас как идет. Я в JSF Managed Bean (типа контроллера) делаю всю бизнес логику. Когда приложение на уровне CRUD то ее очень мало. Вы говорите что нужен отдельный слой (Service, или Transaction Script). А что в этом слое должно быть? Просто я раньше делал слой BusinessObjects. И у меня там было тоже самое что и в Repository. Только единственное если сложная операция по получению данных например "найти и удалить". То я делал это в BusinessObjects. Потом этот слой удалил и стал это же делать в Repository и не парится. Так получилось гораздо проще. А что должно быть в слое Service, или Transaction Script? Логика + Repository? Например авторизация через БД. И как я понял например если я хочу авторизоваться через api то вызову из слоя бизнес логики в классе который отвечает за rest. По сути будет только дублирование вызова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2015, 13:35 |
|
||
|
Вопрос по REST
|
|||
|---|---|---|---|
|
#18+
z3r9, JSF это как десктоп. Он всё забирает на себя, и для деления на слои ничего не остаётся. Т.е. выделить в нём отдельное API да ещё REST - проблематично. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2015, 13:43 |
|
||
|
Вопрос по REST
|
|||
|---|---|---|---|
|
#18+
z3r9, Это сложно объяснить на пальцах. Надо смотреть код. Классическая ошибка заключается в том что новички пишут код где он пишется. И бизнес-логика часто живет либо в контроллере, либо в репозитории. Поэтому сам слой бизнес-логики вырождается и смысла в нем не видно. Но вот когда появляется задача вроде вашей - отдельный доступ к данным, и когда приходится копи-пастить части кода из контроллера в новый API, тогда и становится заметна логика, которую можно и нужно пере-использовать. Но если у вас эта логика в репозитории, то вы можете этого даже не заметить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2015, 13:43 |
|
||
|
Вопрос по REST
|
|||
|---|---|---|---|
|
#18+
z3r9Хочу сделать api чтобы можно было с другого приложения использовать. опиши задачу выше и крупнее. Что за приложения с точки зрения БЛ\бизнеса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2015, 13:44 |
|
||
|
Вопрос по REST
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, у меня логика в Managed Bean. В Repository только методы по работе с БД. Например: Код: java 1. Смотри хороший пример: http://www.onlinetechvision.com/jsf2-primefaces3-spring3-hibernate4-integration-project/ Там как ты говоришь есть слой Service. Но по сути он дублирует слой Repository. Я про это и говорю что по этому его и убрал поскольку были дубли а логику типа авторизации сделал в Managed Bean. Я еще к тому же активно использую триггеры (если в таблицу А добавить то в B изменить) и получается что в Repository работаешь только с конкретной таблицей. Единственное что я могу припомнить так это авторизация которую можно вынести в слой Service. Да что тут говорить если у меня даже Managed Beans пустые почти все. Активно использую генерируемые классы. Petro123, да по сути просто есть админка с CRUD. Нужно данные которые добавляет пользователь из админки обработать и отправить результат назад на добавление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2015, 15:41 |
|
||
|
Вопрос по REST
|
|||
|---|---|---|---|
|
#18+
z3r9, Если БЛ в бд и еще CRUD то о каком API и повторяемости кода может идти речь. У тебя все методы пустые. API у тебя в бд т.к. триггеры с БЛ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2015, 16:35 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38976399&tid=2125329]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
151ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 431ms |

| 0 / 0 |
