Echolot
Спецификации

Файлы .proto

Храните файлы .proto сервиса gRPC в рабочем пространстве, правьте их с живой структурой и создавайте запросы из их методов.

Файл .proto описывает сервис gRPC: его методы и сообщения, которые они принимают и возвращают. Держите его в рабочем пространстве, и запросы gRPC будут использовать его для создания и чтения сообщений, не обращаясь к серверу. Страница «Спецификации» показывает файлы .proto рядом с документами OpenAPI, со своим редактором и своей структурой.

В примере Alpenglow есть один такой файл, inventory.proto, с сервисом alpenglow.inventory.v1.Inventory.

Файл inventory.proto, открытый на странице «Спецификации»: слева исходный текст, справа сервис Inventory с методами ListWarehouses, WatchStock и Reserve, у каждого кнопка с плюсом, а ниже его сообщения

Добавление файла

В боковой панели «Спецификации» нажмите + в заголовке Спецификации:

  • Новый proto-файл создаёт specs/service.proto с небольшим примером сервиса Greeter, который нужно заменить своим.
  • Добавить proto-файл… копирует файл .proto с вашего Mac в папку specs. Если он импортирует другие файлы, скопируйте их в specs тоже. Стандартные типы Google (google/protobuf/timestamp.proto и другие) встроены.

Файлы перечислены в боковой панели в разделе Proto-файлы. Щёлкните файл правой кнопкой, чтобы выбрать Показать в Finder и Удалить…. Удаление сначала спрашивает разрешения и перемещает файл в Корзину; запросам gRPC, которые его использовали, после этого понадобится другой файл или рефлексия сервера.

Правка

Щёлкните файл, чтобы открыть его. Исходный текст слева, с подсветкой. Панель над ним показывает файл, Protocol Buffers и Проблем нет либо первую проблему, найденную парсером, например inventory.proto:12: expected “;”.

Справа структура показывает, что объявлено в файле, и следует за редактором по мере ввода:

  • Каждый Сервис с его методами. У каждого метода указан вид (unary, server streaming и так далее) и его входные и выходные сообщения.
  • Сообщения с их полями и типами.
  • Перечисления.

Если файл не удаётся разобрать, показывается Структура появится, когда файл удастся разобрать.

Echolot сохраняет файл вскоре после каждого изменения, а также когда вы открываете другой файл или уходите со страницы. Если записать его не удаётся, Не удалось сохранить proto-файл предлагает Повторить, Сохранить копию…, Отменить изменения и Продолжить правку, как для спецификаций; ваши правки остаются в редакторе, пока не сохранены.

На странице «Спецификации» открыт один файл за раз: файл .proto или спецификация OpenAPI. Открытие одного сохраняет другой и закрывает его.

Запросы из методов

Нажмите + рядом с методом в структуре, чтобы создать для него запрос gRPC. Запрос использует этот файл .proto, вызывает этот сервис и метод и начинается с сообщения, в котором у каждого поля значение-пример. Укажите в его URL свой сервер и отправьте. Об отправке, методах с потоками и получении методов из рефлексии сервера вместо файла см. gRPC.

Из командной строки

echolot grpc describe --proto api.proto перечисляет сервисы, методы и поля файла, а echolot grpc call вызывает метод. См. echolot grpc.

На этой странице