Size: a a a

Java/Kotlin and more

2021 March 11

AF

Alexey Fomichev in Java/Kotlin and more
Всем привет!
Часто вижу обмен между сервисами похожий на rpc вида
{
operation:
data:
}
И ответ вида
{
status:
data:
errorCode:
errorMessage
}
Стало интересно как это реализуется на джаве, есть ли какие фреймворки? Мои мысли такие, что нужен какой-то dispatcher, и самописные OperationHandler какие-то, которые все умеют формировать какой-то единообразный ответ.
источник

AY

Andrew Yatsenko in Java/Kotlin and more
могут руками делать везде один и тот же ответ)
источник

AF

Alexey Fomichev in Java/Kotlin and more
Andrew Yatsenko
могут руками делать везде один и тот же ответ)
Я с точки зрения красоты больше спрашиваю. Есть ли какие то фреймворки или подходы?
Похоже на соап в json
источник

СЕ

Сергей Ермаков... in Java/Kotlin and more
Alexey Fomichev
Я с точки зрения красоты больше спрашиваю. Есть ли какие то фреймворки или подходы?
Похоже на соап в json
Обычеая dto, как апи организуется такие и респонзы
источник

AF

Alexey Fomichev in Java/Kotlin and more
Понял, ладно, спасибо
Сперва пришла мысль, что так соап сервисы заворачивают, чтобы они более "современно" выглядели
источник

AY

Andrew Yatsenko in Java/Kotlin and more
чето я не понял при чем тут соап
источник

СЕ

Сергей Ермаков... in Java/Kotlin and more
Alexey Fomichev
Понял, ладно, спасибо
Сперва пришла мысль, что так соап сервисы заворачивают, чтобы они более "современно" выглядели
Соап это xml
источник

AF

Alexey Fomichev in Java/Kotlin and more
Структура ответа/запроса похожая, я не про формат
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
Alexey Fomichev
Всем привет!
Часто вижу обмен между сервисами похожий на rpc вида
{
operation:
data:
}
И ответ вида
{
status:
data:
errorCode:
errorMessage
}
Стало интересно как это реализуется на джаве, есть ли какие фреймворки? Мои мысли такие, что нужен какой-то dispatcher, и самописные OperationHandler какие-то, которые все умеют формировать какой-то единообразный ответ.
конкретно про эту структуру ничего не скажу, но вообще да, есть стандарты. Например JSON RPC 2.0. Это вполне себе стандарт, под него есть парочка фреймворков для Java.

Один такой юзал - там поднимается сервлет, который слушает POST-запросы (в этом протоколе все запросы POST) и сам их разбирает и вызывает соответствующие методы в коде (помеченные аннотациями). Ну и клиент он вроде сам строит по интерфейсам, реализующим RPC-методы API.
источник

AS

Anatoly Shirokov in Java/Kotlin and more
Ruslan Stelmachenko
конкретно про эту структуру ничего не скажу, но вообще да, есть стандарты. Например JSON RPC 2.0. Это вполне себе стандарт, под него есть парочка фреймворков для Java.

Один такой юзал - там поднимается сервлет, который слушает POST-запросы (в этом протоколе все запросы POST) и сам их разбирает и вызывает соответствующие методы в коде (помеченные аннотациями). Ну и клиент он вроде сам строит по интерфейсам, реализующим RPC-методы API.
если подняться на уровень выше и начать использовать OpenAPI, то для него есть и кодогенерация и для клиента и для серверных стабов.
источник

AS

Anatoly Shirokov in Java/Kotlin and more
описываем протокол на OpenAPI, а дальше получаем клиента на целевую платформу и на сервер
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
OpenAPI это не уровень выше. Это просто другой подход.
источник

AF

Alexey Fomichev in Java/Kotlin and more
Anatoly Shirokov
если подняться на уровень выше и начать использовать OpenAPI, то для него есть и кодогенерация и для клиента и для серверных стабов.
Он генерирует на основании чего?
источник

AS

Anatoly Shirokov in Java/Kotlin and more
Alexey Fomichev
Он генерирует на основании чего?
на основании формального описания протокола
источник

AF

Alexey Fomichev in Java/Kotlin and more
Anatoly Shirokov
на основании формального описания протокола
Ну он же серверный код на фреймворках тебе не сгенерит
источник

AS

Anatoly Shirokov in Java/Kotlin and more
Alexey Fomichev
Ну он же серверный код на фреймворках тебе не сгенерит
он сгенерит серверные стабы, которые ты потом заполнишь реализацией
источник

AF

Alexey Fomichev in Java/Kotlin and more
Допустим на феин клиентах, если это рест
источник

AF

Alexey Fomichev in Java/Kotlin and more
Anatoly Shirokov
он сгенерит серверные стабы, которые ты потом заполнишь реализацией
А, понял, спасибо
источник

AB

Andrii Buravykov in Java/Kotlin and more
Привет, народ. Может кто в 2 словах объяснить что значит "преимуществом статических фабричных методов над конструкторами является то, что класс возвращенного объекта может варьироваться от вызова к вызову в зависимости от входных параметров"
источник

✔D

✔️Alexey Draznin in Java/Kotlin and more
Andrii Buravykov
Привет, народ. Может кто в 2 словах объяснить что значит "преимуществом статических фабричных методов над конструкторами является то, что класс возвращенного объекта может варьироваться от вызова к вызову в зависимости от входных параметров"
источник