From docs grpc-gateway install:
Run go mod tidy to resolve the versions.
Install by running
$ go install \
github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway \
github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2 \
google.golang.org/protobuf/cmd/protoc-gen-go \
google.golang.org/grpc/cmd/protoc-gen-go-grpc
This will place four binaries in your $GOBIN;
- protoc-gen-grpc-gateway
- protoc-gen-openapiv2
- protoc-gen-go
- protoc-gen-go-grpc
Make sure that your $GOBIN is in your $PATH.
tools добавлен.
Параметры берутся из файла configs/config.local.yml по умолчанию. Папку конфига и сам конфиг можно изменить с помощью флагов "config_file" и "config_dir". Пример можно посмотреть в makefile, run.
В папке docker лежит docker-compose, с помощью которого можно поднять postgres. С помощью goose можно залить миграцию.
Для работы с сервисом есть makefile.
Для тестирования добавлен postman_collection, который эмулирует запрос фронта.
Сервис имеет два эндпоинта:
- /api/favorite/v1/pharmacy - для аптек
- /api/favorite/v1/product - для товар
Они обрабатывают только метод POST. Действия задаются с помощью query-параметров:
- ACTION = "ADD" / "DELETE" (на данный момент сделано добавление и удаление)
- ID = id аптеки или товара
Id пользователя передается в JWT-токене в заголовке. Есть 2 возможности передать его:
- Bearer Token
- Cookie "APP.token"
- Metadata "grpcgateway-cookie: APP.token=[token]" для grpc клиента