رِستی 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+