AppsanHTTPClient
کلاس AppsanHTTPClient
کلاس AppsanHTTPClient یک واسط ساده برای ارسال درخواستهای HTTP در مینیوبها (Mini-Webs) است که به سوپراپ Appsan متصل هستند. این کلاس از قابلیتهای داخلی Appsan (از جمله احراز هویت، تنظیمات پیشفرض، و ارسال درخواست از طریق AppsanWeb) استفاده میکند تا ارسال درخواست به APIها ساده و ایمن باشد.
وارد کردن کلاس
import { AppsanHTTPClient } from '@appsan-web/mini-web-sdk';
تنظیمات درخواست
برای تنظیم رفتار درخواستهای HTTP میتوان از گزینههای موجود در HttpOptions استفاده کرد. این تنظیمات را میتوان بهصورت پیشفرض برای تمامی درخواستها یا بهصورت جداگانه برای هر درخواست تعیین کرد.
تنظیمات Timeout:
connectTimeout: حداکثر زمان مجاز برای برقراری اتصال با سرور. مقدار این گزینه بر حسب میلیثانیه (ms) است.readTimeout: حداکثر زمان انتظار برای دریافت داده از سرور پس از برقراری اتصال. مقدار این گزینه بر حسب میلیثانیه (ms) است.writeTimeout: حداکثر زمان مجاز برای ارسال داده درخواست به سرور. مقدار این گزینه بر حسب میلیثانیه (ms) است.
برای مثال:
AppsanHTTPClient.setDefaultOptions({
connectTimeout: 10000,
readTimeout: 30000,
writeTimeout: 30000
});
در مثال بالا، مقدار connectTimeout برابر ۱۰ ثانیه و مقادیر readTimeout و writeTimeout برابر ۳۰ ثانیه هستند.
متدها
setDefaultOptions(options: HttpOptions): void
تنظیم گزینههای پیشفرض برای تمامی درخواستها.
ورودیها:
options: یک شیء از نوعHttpOptionsکه شامل هدرها، تنظیمات سفارشی و گزینههای Timeout است.
گزینههای Timeout قابل استفاده در HttpOptions عبارتاند از:
connectTimeout: زمان مجاز برای برقراری اتصال، بر حسب میلیثانیه.readTimeout: زمان مجاز برای خواندن پاسخ، بر حسب میلیثانیه.writeTimeout: زمان مجاز برای ارسال داده، بر حسب میلیثانیه.
get(url: string, options?: any): Observable<any>
ارسال درخواست GET.
ورودیها:
url: آدرس API.options(اختیاری): تنظیمات سفارشی برای این درخواست خاص. این تنظیمات میتوانند شاملconnectTimeout،readTimeoutوwriteTimeoutنیز باشند.
خروجی:
یک Observable که نتیجه پاسخ API را بازمیگرداند.
post(url: string, body: any, options?: any): Observable<any>
ارسال درخواست POST.
ورودیها:
url: آدرس API.body: دادهای که باید در بدنه درخواست ارسال شود.options(اختیاری): تنظیمات اضافی برای این درخواست، از جمله تنظیمات Timeout.
put(url: string, body: any, options?: any): Observable<any>
ارسال درخواست PUT برای بهروزرسانی دادهها.
ورودیها:
url: آدرس API.body: دادهای که باید بهروزرسانی شود.options(اختیاری): تنظیمات اضافی برای این درخواست، از جمله تنظیمات Timeout.
delete(url: string, options?: any): Observable<any>
ارسال درخواست DELETE برای حذف دادهها.
ورودیها:
url: آدرس API.options(اختیاری): تنظیمات اضافی برای این درخواست، از جمله تنظیمات Timeout.
patch(url: string, body: any, options?: any): Observable<any>
ارسال درخواست PATCH برای تغییر جزئی دادهها.
ورودیها:
url: آدرس API.body: دادهای که باید تغییر کند.options(اختیاری): تنظیمات اضافی برای این درخواست، از جمله تنظیمات Timeout.
مثال تنظیم Timeout برای یک درخواست
علاوه بر تنظیم مقادیر پیشفرض، میتوان Timeoutها را برای هر درخواست بهصورت جداگانه مشخص کرد.
AppsanHTTPClient.get('/api/example', {
connectTimeout: 5000,
readTimeout: 15000,
writeTimeout: 15000
});
تمام مقادیر Timeout بر حسب میلیثانیه (ms) هستند.
نکات مهم
-
این کلاس از
AppsanWeb.httpCallبرای ارسال درخواستها استفاده میکند، که توسط سوپراپ Appsan مدیریت میشود. -
دادههای مربوط به احراز هویت، به صورت خودکار توسط سوپراپ اضافه میشوند.
-
خروجی تمامی متدها از نوع
Observableاست و میتوان با استفاده از RxJS آنها را مدیریت کرد. -
مقادیر
connectTimeout،readTimeoutوwriteTimeoutهمگی بر حسب میلیثانیه هستند. -
Timeoutها را میتوان با استفاده از
setDefaultOptionsبرای تمامی درخواستها تنظیم کرد یا درoptionsهر متد، برای یک درخواست خاص مقدار متفاوتی در نظر گرفت.