Gera SDKs de cliente para API, esqueletos de servidor e documentação em dezenas de linguagens e frameworks a partir de especificações OpenAPI (v2 e v3).
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
Instale o plugin gateway com Go
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway - 2
Escreva seu serviço gRPC em um arquivo .proto com anotações google.api.http
- 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
Ferramenta de linha de comando que gera SDKs de clientes de API, stubs de servidor e documentação HTML a partir de uma definição OpenAPI/Swagger.
Framework leve em Go para criar microsserviços cloud-native, com transports HTTP e gRPC unificados, middleware e geração de código baseada em Protobuf.
Swagger UI exibe documentação interativa de APIs no navegador a partir de um arquivo de especificação OpenAPI/Swagger.
Kit de ferramentas open source para OpenAPI/Swagger, com referência interativa de API, cliente de API com foco no uso offline e integrações com vários frameworks web.
Uma ferramenta de linha de comando para chamar servidores gRPC, como o curl, mas usando entradas JSON, com descoberta de schemas via server reflection ou arquivos proto.