Repolode
grpc-ecosystem

grpc-ecosystem/grpc-gateway

Plugin de protoc que genera un servidor proxy inverso para traducir llamadas HTTP RESTful con JSON en solicitudes gRPC para servicios Go.

Estrellas
20,008
Forks
2,415
Issues abiertos
150
Último commit
hace 17 horas

¿Qué es?

gRPC-Gateway es un plugin del compilador de Protocol Buffers (protoc) que lee definiciones de servicios protobuf y genera un servidor proxy inverso. El servidor recibe solicitudes RESTful HTTP+JSON y las reenvía a tu servicio gRPC, de modo que una sola implementación puede atender tanto a clientes gRPC como JSON.

El mapeo HTTP se define mediante anotaciones google.api.http en el archivo .proto. Si no hay anotaciones, el generador puede exponer los métodos con un mapeo predeterminado, y un archivo externo de configuración de API gRPC puede proporcionar reglas HTTP cuando no sea posible modificar los archivos proto. El proyecto también incluye protoc-gen-openapiv2 para generar definiciones Swagger 2.0 y una versión alfa, protoc-gen-openapiv3, para generar OpenAPI 3.1.

El código generado depende del paquete de runtime grpc-gateway para Go. Admite parámetros de cadena de consulta y de ruta, solicitudes PATCH mapeadas a field masks, respuestas de streaming como JSON delimitado por saltos de línea y tiempos de espera de gRPC configurados mediante el encabezado Grpc-Timeout.

Funciones clave

  • 01Genera un proxy inverso que traduce solicitudes HTTP+JSON en llamadas gRPC.
  • 02Mapea rutas HTTP, parámetros de consulta y cuerpos de solicitud a mensajes gRPC mediante anotaciones google.api.http.
  • 03Genera definiciones Swagger 2.0 con protoc-gen-openapiv2.
  • 04Ofrece un generador alfa de OpenAPI 3.1, protoc-gen-openapiv3.
  • 05Traduce solicitudes PATCH en solicitudes gRPC con field masks y transmite respuestas como JSON delimitado por saltos de línea.

Casos de uso

  • Exponer un servicio gRPC existente a clientes que solo se comunican mediante JSON sobre REST.
  • Mantener una API RESTful por compatibilidad con versiones anteriores mientras se añade gRPC internamente.
  • Generar documentación Swagger u OpenAPI directamente a partir de definiciones protobuf.
  • Ofrecer un backend gRPC a navegadores o lenguajes con compatibilidad limitada con gRPC.

Inicio rápido

  1. 1

    Instala el plugin gateway con Go

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

    Escribe tu servicio gRPC en un archivo .proto con anotaciones google.api.http

  3. 3

    Genera el código del proxy inverso con protoc o buf usando el plugin

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

Antes de usarlo

  • Solo genera código Go para servicios Go.
  • Para generar código, es necesario configurar protoc o buf y la cadena de herramientas de protobuf.
  • El generador de OpenAPI 3.1 (protoc-gen-openapiv3) está en fase alfa y su salida puede cambiar.

En colecciones

Temas

Preguntas frecuentes

¿Qué es grpc-gateway?
Plugin de protoc que genera un servidor proxy inverso para traducir llamadas HTTP RESTful con JSON en solicitudes gRPC para servicios Go. gRPC-Gateway es un plugin del compilador de Protocol Buffers (protoc) que lee definiciones de servicios protobuf y genera un servidor proxy inverso. El servidor recibe solicitudes RESTful HTTP+JSON y las reenvía a tu servicio gRPC, de modo que una sola implementación puede atender tanto a clientes gRPC como JSON.
¿grpc-gateway es gratuito? ¿Qué licencia tiene?
grpc-gateway es open source bajo la licencia BSD-3-Clause. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿grpc-gateway sigue mantenido?
Mantenimiento activo. El último commit de grpc-gateway fue el 22 oct 2026.
¿Para qué puedo usar grpc-gateway?
Exponer un servicio gRPC existente a clientes que solo se comunican mediante JSON sobre REST. Mantener una API RESTful por compatibilidad con versiones anteriores mientras se añade gRPC internamente. Generar documentación Swagger u OpenAPI directamente a partir de definiciones protobuf. Ofrecer un backend gRPC a navegadores o lenguajes con compatibilidad limitada con gRPC.
¿Cómo se instala grpc-gateway?
Instala el plugin gateway con Go: go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway Escribe tu servicio gRPC en un archivo .proto con anotaciones google.api.http Genera el código del proxy inverso con protoc o buf usando el plugin: protoc -I . --grpc-gateway_out ./gen/go --grpc-gateway_opt paths=source_relative your/service/v1/your_service.proto
¿Dónde consigo grpc-gateway?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/grpc-ecosystem/grpc-gateway

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados