С чего начать

Если у вас новый проект

Если у вас уже есть проект, то пропускайпе этот подраздел.

Установите cookiecutter

cookiecutter https://github.com/devision-io/devision-apis-skeleton.git

Укажите имя вашего нового API, его версию и сжатое емкое описание на английском языке в одно два предложения. Скрипт сам заменит нужные данные в скелете проекта и вы сможете начать.

В итоге вы получите директорию с примерно таким содержимым: https://github.com/devision-io/API-Example-GRPC-Python

Ознакомьтесь с Design Guide

Прежде чам начать вам необходимо ознакомится с принципами дизайна, которыми мы руководствуемся при проектированиии и разработке API.

Запуск

Разработка с gRPC + HTTP Transcoding сопровождается некоторыми необходимыми процессами.

Если вы меняете proto файл, то вы должны выполнить make esp в корне проекта. Когда вы это сделаете в проекте автоматически создадуться файлы загрушек gRPC сервера, а так же настроки передадутся в Google Cloud.

После этого запустите или перезапустите команду make dev - она запускает прокси nginx, который превращает http запрос в ваше api в бинарный протокол gRPC, который непосредственно принимается кодом вашей вебслужбы. Кроме этого esp nginx декодирует и валидирует access_token, который передается query прараметром в api. Это позволяет не проверять авторизацию непосредственно в коде API.

Итог

В сухом остатке работа с gRPC сводится к: - проектированию proto-файла с интерфейсами вашего api. - запуске make esp - запуске make dev - расставления аннотаций проверки скоупов в коде - реализации бизнес логики