С чего начать
Если у вас новый проект
Если у вас уже есть проект, то пропускайпе этот подраздел.
Установите 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
- расставления аннотаций проверки скоупов в коде
- реализации бизнес логики