عن المشروع

gRPC-Gateway هو إضافة لمترجم Google protocol buffers (protoc). يقرأ تعريفات خدمة protobuf وينشئ خادم وكيل عكسي يترجم واجهة RESTful HTTP API إلى gRPC، استنادًا إلى تعليقات google.api.http في تعريفات الخدمة. يتيح ذلك عرض الخدمة بأسلوبي gRPC وRESTful JSON في الوقت نفسه. القدرات الرئيسية الموضحة في README: - ينشئ معالجات JSON API ووكيلًا عكسيًا من تعريفات proto. - يدعم معاملات الطريقة في جسم الطلب والمسار وسلسلة الاستعلام. - يتعامل مع حقول enum في معاملات المسار، بما في ذلك حقول enum المتكررة. - يربط واجهات البث (streaming) بـ JSON المحدد بأسطر جديدة. - ثلاثة أساليب للربط: ربط HTTP الافتراضي (مع generate_unbound_methods)، أو تعليقات google.api.http المخصصة، أو ملف تكوين خدمة gRPC خارجي (اختياريًا مع standalone=true). - إنشاء OpenAPI/Swagger اختياري عبر protoc-gen-openapiv2، وprotoc-gen-openapiv3 في مرحلة alpha لإخراج 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 في مرحلة alpha وقد يتغير شكل مخرجاته، بينما protoc-gen-openapiv2 هو الخيار المستقر للإنتاج. كما يذكر إعادة تسمية معاملات المسار للربط المكرر وأوضاع إلغاء التهريب (unescaping) للشرطات المائلة المشفرة في URL.