Skip to content

Использование встроенного в продукты Intellij gRPC-клиента #4

@tumb1er

Description

@tumb1er

Добрый день.

Не знаю, достойно ли это упоминания в документации, но мне удалось подтвердить работоспособность запросов в Intellij GoLand 2021.3.1

Для начала, плагин GRPC еще в зачаточном состоянии, поэтому много еще не работает. Например, он не осилил включить TLS и прокинуть заголовок Authorization. Поэтому настраиваем nginx примерно с таким конфигом:

server {
    listen 9000 http2;
    location / {
        # подстилка под Intellij gRPC plugin, который не пробрасывает заголовки
        grpc_set_header Authorization "Bearer t.myLongTokenValue";
        # подстилка под Intellij gRPC  plugin, который не включает TLS
        grpc_pass grpcs://invest-public-api.tinkoff.ru:443;
    }
}
  1. Загружаем proto-файлы в любую директорию проекта
  2. В Settings - Languages & Frameworks - Protocol Buffers вручную добавляем путь до этой директории, чтобы IDE увидело proto-файлы
  3. Открываем proto-файл, напротив rpc вызовов будет иконка "Generate request in HTTP Client"
  4. При клике откроется редактор файла "generated-requests.http" где-то в недрах директорий IDE, где из-за многочисленных недоработок плагина GRPC надо указать в качестве хоста адрес локального nginx (localhost:9000).

В итоге, получаем рабочие "простые" запросы:

localhost:9000/tinkoff.public.invest.api.contract.v1.UsersService/GetInfo

{
  "qualifiedForWorkWith": [
    "bond",
    "foreign_etf",
    "foreign_shares"
  ]
}

Response file saved.
> 2021-12-30T120506.OK.json

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions