Об этом проекте
gRPC-Gateway — это плагин для компилятора буферов протоколов Google (protoc). Он читает определения сервисов protobuf и генерирует обратный прокси-сервер, который преобразует RESTful HTTP API в gRPC на основе аннотаций google.api.http в определениях сервисов. Это позволяет одновременно предоставлять сервис как в стиле gRPC, так и в стиле RESTful JSON.
Ключевые возможности, описанные в README:
- Генерация обработчиков JSON API и обратного прокси из определений proto.
- Поддержка параметров метода в теле запроса, пути и строке запроса.
- Обработка полей перечислений в параметрах пути, включая повторяющиеся поля перечислений.
- Сопоставление потоковых API с JSON, разделённым символами новой строки.
- Три подхода к сопоставлению: стандартное HTTP-сопоставление (с generate_unbound_methods), пользовательские аннотации google.api.http или внешний файл конфигурации сервиса gRPC (опционально с standalone=true).
- Опциональная генерация OpenAPI/Swagger через protoc-gen-openapiv2, а также альфа-версия protoc-gen-openapiv3 для вывода OpenAPI 3.1.
- Установка через go install, директивы инструментов Go 1.24 или готовые бинарные файлы релизов с подписями SLSA3.
- Использование с buf (локальными или удалёнными плагинами) или protoc, с примерами конфигураций buf.gen.yaml.
- Библиотека времени выполнения (runtime.NewServeMux) для создания HTTP-точки входа, проксирующей запросы к конечной точке gRPC-сервера.
- Сайт документации, каталог примеров и видео-введение с GopherCon UK 2019.
В README отмечается, что protoc-gen-openapiv3 находится в альфа-стадии, и форма его вывода может измениться, тогда как protoc-gen-openapiv2 является стабильным производственным вариантом. Также упоминается переименование параметров пути для дублирующихся сопоставлений и режимы деэкранирования для URL-кодированных косых черт.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.