Repolode
grpc-ecosystem

grpc-ecosystem/grpc-gateway

Plugin do protoc que gera um servidor proxy reverso para traduzir chamadas HTTP RESTful com JSON em requisições gRPC para serviços Go.

Estrelas
20,008
Forks
2,415
Issues abertas
150
Último commit
há 16 horas

O que é?

gRPC-Gateway é um plugin para o compilador Protocol Buffers (protoc) que lê definições de serviços protobuf e gera um servidor proxy reverso. O servidor aceita requisições RESTful HTTP+JSON e as encaminha ao seu serviço gRPC, permitindo que uma única implementação atenda tanto clientes gRPC quanto JSON.

O mapeamento HTTP é definido por anotações google.api.http no arquivo .proto. Sem anotações, o gerador ainda pode expor métodos usando um mapeamento padrão, e um arquivo externo de configuração da API gRPC pode fornecer regras HTTP quando não for possível modificar os arquivos proto. O projeto também inclui o protoc-gen-openapiv2 para definições Swagger 2.0 e uma versão alfa do protoc-gen-openapiv3, que gera OpenAPI 3.1.

O código gerado depende do pacote runtime do grpc-gateway para Go. Ele oferece suporte a parâmetros de query string e de caminho, mapeia requisições PATCH para field masks, converte respostas em streaming para JSON delimitado por linhas e permite definir timeouts gRPC pelo cabeçalho Grpc-Timeout.

Recursos principais

  • 01Gera um proxy reverso que traduz requisições HTTP+JSON em chamadas gRPC.
  • 02Mapeia caminhos HTTP, parâmetros de query e corpos de requisição para mensagens gRPC por meio de anotações google.api.http.
  • 03Gera definições Swagger 2.0 com o protoc-gen-openapiv2.
  • 04Oferece um gerador alfa para OpenAPI 3.1, o protoc-gen-openapiv3.
  • 05Traduz requisições PATCH em requisições gRPC com field masks e transmite respostas em JSON delimitado por linhas.

Casos de uso

  • Expor um serviço gRPC existente a clientes que só se comunicam usando JSON sobre REST.
  • Manter uma API RESTful por compatibilidade com versões anteriores enquanto se adiciona gRPC internamente.
  • Gerar documentação Swagger ou OpenAPI diretamente a partir de definições protobuf.
  • Disponibilizar um backend gRPC para navegadores ou linguagens com suporte limitado a gRPC.

Início rápido

  1. 1

    Instale o plugin gateway com Go

    go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway
  2. 2

    Escreva seu serviço gRPC em um arquivo .proto com anotações google.api.http

  3. 3

    Gere o código do proxy reverso com protoc ou buf usando o plugin

    protoc -I . --grpc-gateway_out ./gen/go --grpc-gateway_opt paths=source_relative your/service/v1/your_service.proto

Antes de usar

  • Gera apenas código Go para serviços Go.
  • Para gerar o código, é necessário configurar o protoc ou o buf e a cadeia de ferramentas do protobuf.
  • O gerador OpenAPI 3.1 (protoc-gen-openapiv3) está em fase alfa e sua saída pode mudar.

Em coleções

Tópicos

Perguntas frequentes

O que é grpc-gateway?
Plugin do protoc que gera um servidor proxy reverso para traduzir chamadas HTTP RESTful com JSON em requisições gRPC para serviços Go. gRPC-Gateway é um plugin para o compilador Protocol Buffers (protoc) que lê definições de serviços protobuf e gera um servidor proxy reverso. O servidor aceita requisições RESTful HTTP+JSON e as encaminha ao seu serviço gRPC, permitindo que uma única implementação atenda tanto clientes gRPC quanto JSON.
grpc-gateway é gratuito? Qual é a licença?
grpc-gateway é open source sob a licença BSD-3-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
grpc-gateway ainda é mantido?
Manutenção ativa. O último commit de grpc-gateway foi em 22 de out. de 2026.
Para que posso usar grpc-gateway?
Expor um serviço gRPC existente a clientes que só se comunicam usando JSON sobre REST. Manter uma API RESTful por compatibilidade com versões anteriores enquanto se adiciona gRPC internamente. Gerar documentação Swagger ou OpenAPI diretamente a partir de definições protobuf. Disponibilizar um backend gRPC para navegadores ou linguagens com suporte limitado a gRPC.
Como instalar grpc-gateway?
Instale o plugin gateway com Go: go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway Escreva seu serviço gRPC em um arquivo .proto com anotações google.api.http Gere o código do proxy reverso com protoc ou buf usando o plugin: protoc -I . --grpc-gateway_out ./gen/go --grpc-gateway_opt paths=source_relative your/service/v1/your_service.proto
Onde consigo grpc-gateway?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/grpc-ecosystem/grpc-gateway

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados