منصوبے کے بارے میں
Goa Go سروسز بنانے کے لیے ایک ڈیزائن-فرسٹ فریم ورک ہے۔ ہینڈلرز، کلائنٹس اور تفصیلات الگ الگ لکھنے کے بجائے، آپ ایک بار Go-based DSL میں ٹائپس، میتھڈز، ویلیڈیشن اور ایررز بیان کرتے ہیں، اور جنریٹر باقی سب کچھ تیار کر دیتا ہے۔
ایک ہی ڈیزائن سے جنریٹر کیا بناتا ہے:
- ٹائپڈ سروس انٹرفیسز، اینڈ پوائنٹس، کلائنٹس اور باؤنڈری ویلیڈیشن
- HTTP سرور ہینڈلرز، انکوڈرز/ڈیکوڈرز، Go کلائنٹس، CLI کمانڈز اور OpenAPI تفصیلات
- gRPC Protocol Buffer تعریفیں، سرور/کلائنٹ اڈاپٹرز، سیریلائزیشن اور CLI کمانڈز
- JSON-RPC سرور/کلائنٹ کوڈ، ریکویسٹ ڈسپیچ، بیچز اور نوٹیفیکیشنز
- اسٹریمنگ سپورٹ: HTTP کے لیے WebSocket اور SSE، JSON-RPC کے لیے SSE، اور gRPC اسٹریمز
- نامزد رزلٹ ویوز کے ساتھ کوڈ جو رسپانس کی شکلیں منتخب اور سیریلائز کرتا ہے
ایک ہی سروس تعریف ایک ہی آپریشن کو HTTP، gRPC اور JSON-RPC پر پیش کر سکتی ہے۔ جنریٹ کی گئی ٹرانسپورٹس ایک ہی سروس انٹرفیس شیئر کرتی ہیں، اس لیے بزنس لاجک جنریٹڈ ٹری سے باہر عام Go میں ایک بار نافذ کیا جاتا ہے۔ ڈیزائن بدل کر دوبارہ جنریٹ کرنے سے ہینڈلرز، کلائنٹس، ویلیڈیشن اور تفصیلات ایک ساتھ اپ ڈیٹ ہو جاتے ہیں، جس سے کوڈ اور دستاویزات کے درمیان فرق کم ہوتا ہے۔
README ایک کوڈنگ-ایجنٹ ورک فلو بھی نمایاں کرتا ہے: ایک "Goa service designer" اسکل کسی ایپلیکیشن ریپوزٹری میں انسٹال کیا جا سکتا ہے تاکہ ڈیزائن تبدیلیوں، جنریشن، نفاذ اور تصدیق کی رہنمائی کرے۔ پروجیکٹ Goa-AI کی طرف اشارہ کرتا ہے جو AI ایجنٹس اور MCP سرورز بنانے کے لیے Goa ٹائپس دوبارہ استعمال کرتا ہے اور ٹولز کو سروس میتھڈز سے باندھتا ہے، in-memory یا Temporal ایگزیکیوشن انجنز کے ساتھ۔
شروع کرنے کے لیے Go 1.26 یا اس سے بعد کا ورژن درکار ہے (1.27.1 تجویز کردہ)۔ ایک کوئیک اسٹارٹ ماڈیول انیشلائز کرنے، ڈیزائن لکھنے، جنریٹر اور مثال کمانڈز چلانے، اور نتیجے میں بننے والی سروس کو کال کرنے کا طریقہ بتاتا ہے۔ تینوں ٹرانسپورٹس کے لیے Protocol Buffer کمپائلر اور Go protobuf جنریٹرز درکار ہیں؛ صرف HTTP والی پہلی آزمائش میں gRPC اور JSON-RPC بلاکس چھوڑے جا سکتے ہیں۔
دستاویزات میں DSL ریفرنس، کوڈ جنریشن، ٹرانسپورٹ کے مخصوص گائیڈز، سیکیورٹی اسکیمز اور انٹرسیپٹرز جیسے پروڈکشن موضوعات، اور کئی مثال ایپلیکیشنز شامل ہیں۔ پروجیکٹ MIT لائسنس کے تحت ہے اور کمیونٹی تعاون قبول کرتا ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.