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

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

json?

62 ответов

28 просмотров
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
откуда берется этот деливери загадочный. Не первый...

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

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

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

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

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
4
думаешь я не смогу также сделать? мне это просто не удобно
int 💳 𝙖𝙞𝙧 𝙗𝙞𝙜 𝙗𝙤𝙗 🔫 check bio / spam block / AFK / nohello.com / GMT+3
9
Карта сайта