Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: скала плей  [new]
andreykaT
Member

Откуда:
Сообщений: 2421
вот еще делать мне больше нечего всякую дичь придумывать. права используются фронтендерами чтоб корректно отрисовать интерфейс без всяких там дозапросов. права не только крад но и кастомные.

ну в общем, еще как вариант вижу всё таки докручивать доп сервис и класть сущность в него, а он уже делает обертку, или тупо к джейсону прикручивает набор полей и возвращает респонз. топорно. но наверное, это лучшее. более прозрачно и неявно как это сделать я вариантов не вижу.

ну или снова имплиситы заюзать. и вместо Json.toJson(entity) сделать Json.toJsonWithAccessAttributes(entity) что в принципе тоже самое что сверху. подпорка.
8 фев 19, 22:21    [21804946]     Ответить | Цитировать Сообщить модератору
 Re: скала плей  [new]
dimonz80
Member

Откуда:
Сообщений: 198
andreykaT
вот еще делать мне больше нечего всякую дичь придумывать. права используются фронтендерами чтоб корректно отрисовать интерфейс без всяких там дозапросов. права не только крад но и кастомные.

ну в общем, еще как вариант вижу всё таки докручивать доп сервис и класть сущность в него, а он уже делает обертку, или тупо к джейсону прикручивает набор полей и возвращает респонз. топорно. но наверное, это лучшее. более прозрачно и неявно как это сделать я вариантов не вижу.

ну или снова имплиситы заюзать. и вместо Json.toJson(entity) сделать Json.toJsonWithAccessAttributes(entity) что в принципе тоже самое что сверху. подпорка.


Не пойму этих терзаний. Все правильно ИМХО описал. Если случай простой и единичный то модифицируем JSON перед отдачей клиенту, если что-то более-менее периодическое, то implicit classes вполне решение, к тому же изолированное и то модели и от контроллера, которое можно вынести в отделный пакадж и подключать по мере необходимости.
9 фев 19, 03:01    [21805036]     Ответить | Цитировать Сообщить модератору
 Re: скала плей  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
andreykaT
вот еще делать мне больше нечего всякую дичь придумывать.

тут имхо столкнулись паттерны статики динамики.
Я рассказал о классике Java и статике проектирования, но скала это динамика.
При обычном проектировании предпочтительнее заранее проектирование Модели и выше, выше по стеку до клиента.
При динамике ты вклиниваешься в процесс и добавляешь инфу (а ля рефлексия).
Ну а Скала:
автор
Scala богата выразительными средствами, за что ее и не любят опытные программисты на классических ООП-языках. Неявные параметры и преобразования — одна из самых спорных фич языка. Слово "неявные", уже как-бы намекает на что-то неочевидное и сбивающее с толку.

))
Ты так и не сказал в чём проблема, из твоего сервиса вызвать другой сервис чтобы полностью сформировать классы отправки.
Все решения хороши. Тебе решать.
IMHO
9 фев 19, 09:11    [21805074]     Ответить | Цитировать Сообщить модератору
 Re: скала плей  [new]
andreykaT
Member

Откуда:
Сообщений: 2421
да спасибо. сделал уже. просто сделал сервис прослойку который оборачивает джейсон нужными полями.

теперь другую хрень нашел в этой убогой скале.

оказвыается передать тип просто как в джаве нельзя. или я не понял как.

передаю объект по интерфейсу маркеру, потом серализатору говорю что это объект с типом Т, тип Т чуть выше через самого интерфейса передаю. а эта скотина говорит что для такого типа нету сериализатора. а он имплиситли есть.
если явно скастовать в тип через .асИнстансОф[НазваниеКласса] - то работает. если кастовать в Т -- то не работает хотя Т = НазваниеКласса.
это какой то гон. с джавы рефлексию чтоль подключить. или через паттерн матчинг кастовать. да бред какой то.

почему зная класс объекта, видя этот класс объекта я не могу в него скастовать средствами скалы???
10 фев 19, 22:56    [21805886]     Ответить | Цитировать Сообщить модератору
 Re: скала плей  [new]
mayton
Member

Откуда: loopback
Сообщений: 42536
Строгий вывод типов мать ево.
10 фев 19, 23:01    [21805892]     Ответить | Цитировать Сообщить модератору
 Re: скала плей  [new]
andreykaT
Member

Откуда:
Сообщений: 2421
я бы сказал что он очень строгий ))

значит я снова чот не то делаю. ладно, попробую зайти с другого края.
10 фев 19, 23:20    [21805903]     Ответить | Цитировать Сообщить модератору
 Re: скала плей  [new]
mayton
Member

Откуда: loopback
Сообщений: 42536
Вообще это принципы ФП. Они должны стоять выше чем возможности Java-рефлексии.

Хотя я возможно не совсем понял где ты что делаешь и как. Сорц бы помог.
10 фев 19, 23:23    [21805906]     Ответить | Цитировать Сообщить модератору
 Re: скала плей  [new]
dimonz80
Member

Откуда:
Сообщений: 198
andreykaT
да спасибо. сделал уже. просто сделал сервис прослойку который оборачивает джейсон нужными полями.

теперь другую хрень нашел в этой убогой скале.

оказвыается передать тип просто как в джаве нельзя. или я не понял как.

передаю объект по интерфейсу маркеру, потом серализатору говорю что это объект с типом Т, тип Т чуть выше через самого интерфейса передаю. а эта скотина говорит что для такого типа нету сериализатора. а он имплиситли есть.
если явно скастовать в тип через .асИнстансОф[НазваниеКласса] - то работает. если кастовать в Т -- то не работает хотя Т = НазваниеКласса.
это какой то гон. с джавы рефлексию чтоль подключить. или через паттерн матчинг кастовать. да бред какой то.

почему зная класс объекта, видя этот класс объекта я не могу в него скастовать средствами скалы???


Дык откуда известно про сериализатор для ХЗ какого типа Т во время компиляции? Если используешь play.api.libs.json, то сигнатура Json.toJson требует инмлиситный параметр Writes[T].

Json.toJson[T](o: T)(implicit tjs: Writes[T]): JsValue


вот и передавай своему методу тотже имплиситный параметр или указывай явно.
11 фев 19, 01:22    [21805962]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Java Ответить