Size: a a a

2021 June 18

AP

Andrew Popov in Go-go!
Я думаю, что есть 2 способа.
Каждый микросервис реализует рест-апи. И пишется единый SPA, который будет “ui”.

Но в этом случае нужно разделять адрес апи и учитывать откуда что запрашивать.

Можно сделать единый рест-апи сервер. Но тогда надо написать какой-то роутер (можно использовать nginx), или сервис на go, который будет что-то вроде шлюза, получать все запросы с веба и запрашивать данные по grpc от конкретных го-сервисов, конвертировать в нужный формат и отдавать наверх.
источник

L

LiFeAiR in Go-go!
>данные на вход подаются в разных форматах json и xml
но данные давно уже гоняем в grpc
источник

RE

Robert Egorov in Go-go!
спасибо! перевариваю
источник

AP

Andrew Popov in Go-go!
Реализовал подобное у себя. Выглядит солидно. Но увеличивает кол-во работы.

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

Зависит, наверное, от проекта. Если крупный проект, то лучше делать шлюз.
источник

L

LiFeAiR in Go-go!
>на grpc обмен данными между шлюзом и сервисами уходит прилично времени
кодогенерация решает)
источник

AP

Andrew Popov in Go-go!
Но единая точка входа всё же гораздо перспективнее. Может инкапсулировать разную доп. логику. Авторизация, права доступа и тп.
источник

RE

Robert Egorov in Go-go!
проект не такой нагруженный, поэтому я там grpc не планирую.
то есть в качестве gateway api подойдет nginx наверно?
у меня JWT токены и права доступа (в токене) проверяются на каждом микросервисе.

то есть nginx выполнил роль SSLтерминатора и прокси
источник

AP

Andrew Popov in Go-go!
Это был первый опыт с grpc.
Может дальше будет быстрее.
источник

Nn

No name in Go-go!
да. тут нашёл решение  но появился новая ошибка:
invalid DSN: did you forget to escape a param value?
exit status 1


подключение делается так:
db, err := sql.Open("mysql", "apteka:12345@tcp(127.0.0.1:3306)/apteka/?parseTime=true")

все
свои возможные варианты перепробовал
источник

с

сонная википедия... in Go-go!
apteka:12345@tcp(127.0.0.1:3306)/apteka?parseTime=true
источник

с

сонная википедия... in Go-go!
оно толком не нормализует путь
источник

Nn

No name in Go-go!
что можно делать?
источник

с

сонная википедия... in Go-go!
писать так
источник

Nn

No name in Go-go!
да мля Сработало )))
источник

Nn

No name in Go-go!
+ спасибо
источник

Nn

No name in Go-go!
понятно у меня ошибка была + и на запросе:
SELECT * FROM apteka.searches_log current_timestamp()

без current_timestamp() работает
источник

н

нелицеприятный... in Go-go!
как в golanD включить хинты не только для константных значений параметров, а для всех параметров? в inlay hints не нашел такой опции
источник

н

нелицеприятный... in Go-go!
источник

#

#mrv in Go-go!
Знатоки такое кто нибудь видел/трогал/решал ?!

could not import C (cgo preprocessing failed) (compile) go-staticcheck
чистая система с go + vscode и стандартные плагины которые сам подтягивает ..
источник

AB

Andrey Burov in Go-go!
а руками go build тоже ругается?
источник