گو ریسٹی

Go Resty ایک گو لینگویج کی لائبریری ہے جو RESTful API کلائنٹس بنانے کے لئے ہے۔ یہ ایک مختصر اور طاقتور API فراہم کرتا ہے جو ڈویلپرز کو آسانی سے HTTP درخواستیں بھیجنے اور جوابات کا سامنا کرنے کی اجازت دیتا ہے۔

خصوصیات

  • GET، POST، PUT، DELETE، HEAD، PATCH، OPTIONS، اور دیگر درخواست کے طریقے کا کمال
  • سادہ اور قلاباز دسترستم اور درخواست کے طریقے کی تنظیمات
  • درخواست باڈی string، []byte، struct، map، slice، اور io.Reader کی قسم ہوسکتی ہے
    • خود بخود Content-Type کی دریافت
    • io.Reader کے لئے غیر بفر سماج براعظم
    • مڈیر و درخواست انفرادی میں *http.Request اور زندہ Request.RawRequest کے ذریعہ پہنچاۓ۔
    • Request.RawRequest.GetBody() کے ذریعہ درخواست باڈی کے کئے متعدد پڑھ لینے کی اجازت دیتا ہے
  • ریسپانس اوبجیکٹ کیساتھ زیادہ امکانات فراہم کرتا ہے
    • ریسپانس کو []byte سطح - response.Body() پر پہنچاانا، یا string - response.String()
    • ریسپانس وقت کی دریافت کرنا response.Time() اور وصول ہونے کا وقت response.ReceivedAt()
  • خود بخود انکوڈ اور ڈیکوڈ مواد کی قسمیں جیسے JSON اور XML
    • اگر Content-Type ہیڈر اور struct/map پیرامیٹرات دیے نہیں گئے ہوں تو پیش فرضاً JSON پر کرتا ہے
    • JSON انکوڈ/ڈیکوڈ اور XML انکوڈ/ڈیکوڈ کو بائی‌پاس اختیارآپکس کرنے کے اوپشن فراہم کرتا ہے
  • ایک یا ایک سے زیادہ فائلوں کو multipart/form-data کے ذریعہ آسان اپلوڈ کرنا
    • فائلوں کی مواد کی خود بخود کی دریافت
  • دوبارہ کوشش اور دوبارہ کوشش کی حالت کا پشتیبانی میکانیزما و دوبارہ کوشش کی حالت کی فنکشن اشاروں کے لئے
  • HTTP اور REST کلائنٹ میں مڈیر و ریسپانس کی سپورٹ کے لئے
  • Request.SetContext کو سپورٹ کرتا ہے
  • BasicAuth اور Bearer ٹوکنز کے لئے اختیارات تصدیق
  • تمام درخواست خاص یا مخصوص درخواستوں کے لئے مطالبہ ContentLength قیمت ترتیب دیتا ہے
  • کسٹم روٹ سرٹیفیکیٹ اور کلائنٹ سرٹیفیکیٹ
  • مستقیم طریقے سے HTTPریسپانس کو فائل میں ڈاؤن لوڈ/سیو کرنا، شبیہ curl -o کمانڈ کی طرح
  • کوکیز کے لئے درخواست اور CookieJar کی سپورٹ
  • ہوسٹ یو آر ایل کی بجائے ایسآروی ریکارڈ پر مبنی درخواستوں کی سپورٹ
  • کلائنٹ کی ترتیبات جیسے Timeout، RedirectPolicy، Proxy، TLSClientConfig، Transport، وغیرہ
  • Resty ڈیزائن
    • کلائنٹ سطح پر منتخب اور ترتیبات
    • درخواست اور ریسپانس کے لئے مڈیر و ہوسٹ
    • خلق کے ملٹیپل کلائنٹس کو فراہم کرتا ہے، یہاں تک کہ چاہتے ہوءے resty.New() کا استعمال ہوسکتا ہے
  • متوازیت کے لئے Goroutine محفوظ
  • ڈیبگ موڈ - صاف اور دولتمند لاگ دکھائیں
  • گولی کھاتے ہیں - گو اس پر خود بخود اصلاح کرتا ہے، ریسٹی میں سنگین اضافیات کا حل کرنا
  • HTTP/2 اور HTTP/1.1 کے ساتھ مطابقت
  • Bazel سپورٹ
  • Resty کے ٹیسٹ کی آسان مویکنگ فراہم کرتا ہے

سپورٹ کردہ گو ورزنز

go1.16 اور اس سے اوپر کا استعمال کرنا مشورہ دیا گیا ہے۔

از Resty "v1.10.0" ورژن شروع ہوکر go modules کی سپورٹ کرتی ہے۔

Resty ورژن v2 اور اس سے اوپر کی صورت میں، یہ مکمل طور پر go modules پیکیج شائع کرنے کو سپورٹ کرتی ہے۔ یہ /vN سافکس درآمد کو سمجھنےوالے Go ورزن کا استعمال کرنا ضروری ہے:

  • 1.9.7+
  • 1.10.3+
  • 1.11+