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 برای هر درخواست مقدار متفاوتی تعیین کرد.

Revision #2
Created 12 May 2025 07:01:52 by a.tavana
Updated 9 August 2026 16:23:27 by a.dadgari