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