رِستی Go
رستی یک کتابخانه زبان Go برای ساختن مشتریان RESTful API میباشد. این کتابخانه یک API مختصر و قدرتمند فراهم میکند که به توسعه دهندگان این امکان را میدهد که به راحتی درخواستهای HTTP را ارسال کرده و پاسخها را اداره کنند.
ویژگیها
- پشتیبانی از روشهای GET، POST، PUT، DELETE، HEAD، PATCH، OPTIONS و دیگر درخواستها
- تنظیمات ساده و قابل زنجیرهای و روشهای درخواست
- بدنه درخواست میتواند از نوع
string
،[]byte
،struct
،map
،slice
وio.Reader
باشد - به طور خودکارContent-Type
را شناسایی میکند - برایio.Reader
از پردازش بدون بافر استفاده میکند - از طریقRequest.RawRequest
در میاننرمافزار و اجرای درخواست به نمونه اصلی*http.Request
دسترسی دارد - امکان خواندن چندین بار بدنه درخواست را از طریقRequest.RawRequest.GetBody()
ارائه میدهد - با اشیاء Response امکانات بیشتری ارائه میدهد
- به عنوان یک آرایه
[]byte
به پاسخ دسترسی دارد -response.Body()
یا به عنوان یکstring
-response.String()
- زمان پاسخ راresponse.Time()
و زمان دریافت شده راresponse.ReceivedAt()
بازیابی میکند - به طور خودکار انکود و دیکود انواع محتوا مانند
JSON
وXML
- به صورت پیشفرض بهJSON
میپردازد اگر هدرContent-Type
و پارامترهایstruct/map
ارائه نشده باشد - گزینههایی برای نادیده گرفتن کدگذاری/کدهگذاری JSON و کدهگذاری/کدگذاری XML ارائه میدهد - آپلود ساده یک یا چند فایل از طریق
multipart/form-data
- به صورت خودکار نوع محتوای فایلها را شناسایی میکند - پشتیبانی از مکانیزم تلاش مجدد و ارجاع تابع شرط تلاش مجدد
- پشتیبانی میاننرمافزار برای درخواستهای 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
و بالاتر Resty، به صورت کامل از منتشر کردن بستههای go modules پشتیبانی میکند. این نسخه نیازمند استفاده از یک نسخه Go است که وارد /vN
imports را درک میکند:
- 1.9.7+
- 1.10.3+
- 1.11+