گو ریسٹی
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+