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


Revision #7
Created 16 April 2025 12:30:43 by a.dadgari
Updated 9 August 2026 16:24:39 by a.dadgari