Go Resty
Go Resty هي مكتبة لغة Go لبناء عملاء واجهة برمجة تطبيقات RESTful. توفر واجهة برمجة التطبيقات مختصرة وقوية تمكن المطورين من إرسال طلبات 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تلقائيًا- يفترض القيمة الافتراضية هي
JSONإذا لم يتم توفير رأسContent-Typeومعلماتstruct/map - يوفر خيارات لتجاوز الترميز/فك الترميز JSON وترميز/فك ترميز XML
- يفترض القيمة الافتراضية هي
- تحميل بسيط لملفات واحدة أو أكثر عبر
multipart/form-data- يكتشف تلقائيًا نوع المحتوى للملفات
- يدعم آلية إعادة المحاولة Backoff ومراجعات دوال شرط المحاولة
- دعم الوسيط لطلبات HTTP وREST في عميل Resty، بما في ذلك الطلب والرد
- يدعم
Request.SetContext - خيارات المصادقة لـ
BasicAuthوالرموز المميزةBearer - يضبط قيمة
ContentLengthللطلبات كلها أو طلبات محددة - شهادات الجذر المخصصة وشهادات العميل
- يقوم بتنزيل/حفظ استجابات HTTP مباشرة إلى ملف، على غرار أمر
curl -o - دعم الطلب وCookieJar لملفات تعريف الارتباط
- طلبات استنادًا إلى سجلات SRV بدلاً من عنوان URL المضيف
- إعدادات العميل مثل
TimeoutوRedirectPolicyوProxyوTLSClientConfigوTransport، إلخ. - تصميم Resty
- يضبط ويختار على مستوى العميل، مع الخيار لتجاوز على مستوى الطلب
- وسيط للطلبات والردود
- يسمح بإنشاء عملاء متعددين باستخدام
resty.New()إذا لزم الأمر
- آمن بالنسبة لتناوب الروتينات
- وضع التصحيح - عرض سجل واضح وغني
- Gzip - تعامل Go تلقائيًا معه، مع معالجة الاحتياط في Resty
- متوافق مع
HTTP/2وHTTP/1.1 - دعم Bazel
- يوفر بسهولة التزييف لاختبار Resty
الإصدارات المدعومة من Go
يُفضل استخدام go1.16 وما فوق.
ابتداءً من الإصدار v1.10.0، يدعم Resty go modules.
بدءًا من الإصدار v2 وما بعده، يدعم بشكل كامل نشر حزمة وحدات go. يتطلب استخدام Go الذي يفهم استيرادات باللاحقة /vN:
- 1.9.7+
- 1.10.3+
- 1.11+