Перейти до вмісту

gRPC

Клацніть правою кнопкою в дереві ▸ Додати ▸ Запит gRPC.

Вкладка gRPC: адреса сервера, тип виклику «Унарний», обчислений шлях «служба/метод», повідомлення запиту у форматі JSON і метадані

ПолеРоль
URLhost:port сервера
Служба / МетодСлужба й викликана RPC
Тип викликуunary, server-stream, client-stream, bidirectional-stream
Повідомлення запитуПовідомлення у форматі JSON
МетаданіПари ключ / значення, що передаються з викликом (саме тут проходять облікові дані)

Звідки береться визначення служби

Section titled “Звідки береться визначення служби”

Три можливі джерела в порядку пріоритету:

  1. набір дескрипторів, отриманий серверною рефлексією, — саме його задає імпорт через рефлексію, і він має перевагу над рештою;
  2. вбудований вміст .proto, збережений у проєкті;
  3. шлях до файлу .proto на диску.

Перший варіант має важливий практичний наслідок: запит, імпортований через рефлексію, продовжує працювати офлайн, навіть якщо сервер недосяжний.

Імпорт через рефлексію

Section titled “Імпорт через рефлексію”

У модальному вікні імпорту gRPC вкажіть host:port: Restorm звернеться до служби рефлексії, завантажить дескриптори й побудує дерево — по теці на кожну службу, по запиту на кожну RPC, зі зразком повідомлення.

Повторне підключення до тієї самої адреси розпізнається як повторна синхронізація й оновлює наявне дерево замість того, щоб його дублювати.

Якщо сервер не реалізує рефлексію, Restorm явно про це повідомить: тоді імпортуйте .proto. Див. Імпорт .proto для gRPC.

Доступні три транспорти:

ТранспортКоли використовувати
grpc (типово)Нативний gRPC поверх HTTP/2
grpc-webСервер за проксі gRPC-Web
connectСервер Connect-RPC

Для всіх трьох потокових режимів панель відповіді показує повідомлення одне за одним. У сценарії використовуйте дії З’єднання gRPC, Надсилання gRPC та Закриття gRPC: з’єднання залишається відкритим між блоками, кожне отримане повідомлення генерує подію, а закриття виконує напівзакриття з боку клієнта.

Restorm уміє розміщувати сервер симуляції gRPC: перелік імітованих методів, кожен зі своїм повідомленням-відповіддю (масив JSON для потоку), кодом статусу, кінцевими метаданими або скриптом. Серверна рефлексія типово виставлена назовні, а TLS налаштовується сертифікатом і ключем у форматі PEM. Див. Імітація служби gRPC.

Чотирнадцять цілей: grpcurl, grpc_cli, grpcurl у режимі gRPC-Web, curl у режимі Connect-RPC, JavaScript і TypeScript (@grpc/grpc-js), Python (grpcio), Go, Java (grpc-java), C# (Grpc.Net.Client), Ruby, Rust (tonic), Kotlin (grpc-kotlin), Swift (grpc-swift).