170 похожих чатов

Как реализовать grpc ендпоинт, чтобы фронтенд получал ответ в формате

json?

62 ответов

92 просмотра
SD- Автор вопроса

?

По какому протоколу ты хочешь, чтобы фронтенд получал json?

SD- Автор вопроса
Alexander
По какому протоколу ты хочешь, чтобы фронтенд полу...

Вообще вопрос странный, grpc использует http2, и бинарный формат данных, фронт требует json, можно же преобразовать бинарные данные в json и вернуть фронту

SD
http2

По http2 или по grpc?

SD
Вообще вопрос странный, grpc использует http2, и б...

Можно, но этим будет не grpc-эндпоинт заниматься. Можешь написать сервис-прослойку, который будет забирать данные по grpc и отдавать json-ом по http. Ну или добавить в сервис http+json эндпоинты

SD- Автор вопроса
Alexander
Можно, но этим будет не grpc-эндпоинт заниматься. ...

Да, я вот и спросил с целью узнать как правильнее сделать

SD
Да, я вот и спросил с целью узнать как правильнее ...

Зависит от того, как тебе удобнее, в общем-то. Либо от корпоративной политики :)

SD- Автор вопроса
Alexander
Зависит от того, как тебе удобнее, в общем-то. Либ...

А вообще при состыковке react и grpc, как лучше фронту отдавать?

SD
А вообще при состыковке react и grpc, как лучше фр...

Никак, браузеры не умеют работать с grpc. Делай для браузеров отдельные эндпоинты.

SD
А вообще при состыковке react и grpc, как лучше фр...

Можешь попробовать посмотреть в сторону grpc-web, который предлагает прокси, транслируют grpc в удобоваримую для браузерного js-а форму.

Java RPC

SD- Автор вопроса
Mark Maxwell
Java RPC

Прикол из требований в вакансии, в golang jobs

SD- Автор вопроса
Alexander
Можешь попробовать посмотреть в сторону grpc-web, ...

- во-первых обработка ошибок оч плохая - во-вторых заголовки неадаптированные типа grpc-status заставят поплясать - в-третьих у нас были сложности с отображением ответа в браузере кароч тулинг не готов был либо фронтендеры не могли этим занятьс и не хотели Может envoy?

SD
- во-первых обработка ошибок оч плохая - во-вторых...

Я его не юзал. Вообще, я бы просто отдельный набор эндпоинтов под потребности браузера нарисовал.

SD- Автор вопроса
Alexander
Я его не юзал. Вообще, я бы просто отдельный набор...

Можешь пример показать плиз, где rest используется рядом с эндпоинтами grpc?

SD
Можешь пример показать плиз, где rest используется...

В паблике нет, но на предыдущем месте работы так активно делали, пока техдир с подачи безопасников не приказал распилить сервисы на отдельно grpc-бэки с бизнес-логикой и обертки с http api и фронтом.

Я читал статью, что разделять еще правильно надо.

SD- Автор вопроса
Alexander
В паблике нет, но на предыдущем месте работы так а...

Хм, а что опасного держать в одном месте grpc и rest?

SD- Автор вопроса
Alexander
В паблике нет, но на предыдущем месте работы так а...

Т е фронт дёргал обертки http api а обертки в свою очередь обращались к grpc?

SD
Т е фронт дёргал обертки http api а обертки в свою...

У меня такое было на нескольких проектах, при чём везде по разному назывался "gateway service", "frontend service", "api service". HTTP в мир, а внутри всё на gRPC

SD- Автор вопроса

В delivery его надо, не в адаптеры

SD
В delivery его надо, не в адаптеры

Точно понимаешь про что я говорю ?

SD- Автор вопроса
SD
В delivery его надо, не в адаптеры

delivery это что? Контроллеры?

SD
Про чистую архитектуру

Про хексогональную. Где есть driven и secondary adapter. (В целом идейно чистая) Мне кажется, grps — это presentation слой. Просто не совсем понимаю что такое delivery

SD- Автор вопроса
Bol4onok
Точно понимаешь про что я говорю ?

В адаптерах gateway как правило для dao, delivery он же presentation layer используется для grpc, http api, graphql

SD
В адаптерах gateway как правило для dao, delivery ...

В хексогональной два вида адаптеров. Primary — presentation. Secondary — инфраструктурные. С разных сторон типо.

SD- Автор вопроса
SD
Хм, а что опасного держать в одном месте grpc и re...

Для grpc есть обязатеоьный внутренний фреймворк аутентификации и авторизации клиентов, а для http эндпоинтов разброд и шатание. Потому потребовали от команд отделить сервисы с бизнес-логикой и grpc с нормальной аутентификацией и авторизацией и http-сервисы

Потому что так было заведено в компании: grpc обязательно для s2s, а остальное по потребности

или secondary

SD- Автор вопроса
Alexander
Для grpc есть обязатеоьный внутренний фреймворк ау...

Те вы вынесли аутентификацию и авторизацию на grpc?

Rostislav Teryaev
или secondary

Обработчик запрсов — presentation Клиент от других API — адаптер

SD- Автор вопроса

В Go например соединение с бд выносят в отдельных пакет в папке pkg

SD
В Go например соединение с бд выносят в отдельных ...

О.o Столько вопросов. Что значит "вынести соединение в пакет"? Почему "pkg"? Что за название? Почему не адаптер? Как название пакета влияет на реализацию

SD
Те вы вынесли аутентификацию и авторизацию на grpc...

Нет, s2s AA для grpc отдельно, а для http отдельно (уже в зависимости от потребностей сервиса). Просто для grpc была реализована функциональность на уровне общего фреймворка.

SD- Автор вопроса
Айван
О.o Столько вопросов. Что значит "вынести соединен...

Коннект к бд это внешняя зависимость не имеющая отношения к ча, зачем тебе в ча тащить коннект к бд?) Мартин писал об этом, но все почему то тащат Коннект к бд в чистую архитектуру адаптеров

SD
Коннект к бд это внешняя зависимость не имеющая от...

может потому что эти все понимают, что такое адаптеры?

SD- Автор вопроса
Айван
О.o Столько вопросов. Что значит "вынести соединен...

Я делаю слой адаптеров внутри usecase для соединения с внешними слоями репозитория например, а подключение к бд выношу в отдельный пакет вне ЧА

SD
Я делаю слой адаптеров внутри usecase для соединен...

Ты либо интерфейсы адаптерами называешь, либо у тебя нарушен DIP

SD
Интерфейсы

это порты называется

SD
Интерфейсы

Адаптерами называют реализации, не интерфейсы

https://refactoring.guru/ru/design-patterns/adapter (простите, нужен VPN. Изображения кидать нельзя~)

SD- Автор вопроса
Айван
https://refactoring.guru/ru/design-patterns/adapte...

Да все правильно, я разделяю на слои delivery, domain, repository(использует gateway, dao), usecase(содержит интерфейсы) Само подключение к бд у меня в pkg, как внешняя зависимость, в остальном все как вы показывает на картинке

SD
Да все правильно, я разделяю на слои delivery, dom...

откуда берется этот деливери загадочный. Не первый раз встречаю в чате, но не встречаю больше нигде

SD- Автор вопроса
Rostislav Teryaev
откуда берется этот деливери загадочный. Не первый...

Сразу видно что вы не работали в крупном продакшене)

К чему это? Адаптер в ЧА это частный случай адаптеров как паттерна

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта