Tinkoff / investAPI

395 stars 136 forks source link

Небольшая проблема генерации gRPC #23

Closed SinnerUfa closed 2 years ago

SinnerUfa commented 2 years ago

Здравствуйте! В предыдущей версии proto файлов опция option go_package была записана как: option go_package = "Tinkoff/investAPI"; И генерация с помощью protoc для go выполнялась следующей командой: protoc --proto_path=.\contracts --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative .\contracts\*.proto После измения опции option go_package на: option go_package = "investapi"; Генерация той же командой выдает следующее:

sandbox.proto:12:1: warning: Import google/protobuf/timestamp.proto is unused.
protoc-gen-go: invalid Go import path "investapi" for "common.proto"

The import path must contain at least one period ('.') or forward slash ('/') character.

See https://developers.google.com/protocol-buffers/docs/reference/go-generated#package for more information.

Исправить с помощью опции M${PROTO_FILE}=${GO_IMPORT_PATH}, как описано в https://developers.google.com/protocol-buffers/docs/reference/go-generated не вышло. Не могли бы Вы подсказать, как правильно в данном случае поступить? В дополнение:

  1. Как видно в ответе команды файл sandbox.proto не использует google/protobuf/timestamp.proto, но импортирует его;
  2. Спасибо за добавленные комментарии и типы операций (в принципе можно еще добавить комментарии к самим файлам proto, как в рекомендациях https://developers.google.com/protocol-buffers/docs/style );
  3. И небольшой вопрос, поля x-ratelimit-limit, x-ratelimit-remaining и x-ratelimit-reset возможно ли переместить из Header сообщений в их тело (как вложенные message в proto например)?. Заранее спасибо за ответ!
AlexanderVolkovTCS commented 2 years ago

Добрый день, go_package уже изменен,

  1. аналогично, исправлено.
  2. о каких комментариях говорите?
  3. это технические поля и выносить их в контракты пока не планируется