نصب نیازمندی ها
- نصب نیازمندی های پروژه Appsan
- توسعه مینی اپ در اپسان
- نصب نیازمندی های پروژه
- اضافه کردن اپسان
- تنظیم و اجرای مینیاپ در IntelliJ IDEA
- نمایش لاگها در Appsan
- نحوه افزودن پروژه به اپسان
- راهنمای تنظیم پروژه Angular برای استفاده در Appsan
- راهنمای تنظیم پروژه React برای استفاده در Appsan
- کتابخانه JavaScript اپسان وب
- تنظیم امکان بازگشت و رفتار دکمه بازگشت در اپسان
- appsanHttpClient
نصب نیازمندی های پروژه Appsan
در این بخش راهنمایی نصب نیازمندی ها برای یک پروژه در اپسان رو قدم به قدم جلو میرویم.
1)نصب IntelliJ IDEA نسخه 2025 از سایت های داخلی
در مرحله اول از سایت های داخلی اخرین ورژن IntelliJ IDEA را نصب کنید .
2)فعال سازی و نصب appsan-intelij-plugin روی آن (روش پیشنهادی)
با رفتن به این نشانی آخرین نسخه پلاگین را دانلود و ان را از حالت فشرده خالی کنید.
3)ایجاد پروژه جدید در intellij
4) تنظیمات SDK اپسان
5)خطا های احتمالی
در این قسمت به احتمال زیاد به این خطای رایج میخورید Project has no JDK configuration برای این مشکل نیاز هست که در بخش Project در پنجره باز شده SDK را انتخاب کنید ورژن 11 یا بالاتر از JAVAرا انتخاب کرده یا در صورت عدم وجود ورژن Add را بزنید تا به صورت خودکار دانلود شود.
6)اضافه کردن پروژه یا ایجاد پروژه در فایل web و ساخت build آن در webdist
برای اینکه پروژه خود را در اپسان قرار دهید نیاز هست که ساختار ارائه شده اپسان را اجرا کنید . در این ساختار شما نیاز دارید که دو فایل web , web dist را اضافه کنید .
توضیحات بیشتر این بخش در ادامه امده است.
7)استفاده از عنصر webpage در پروژه Appsan
در مرحله اخر شما نیاز دارید که از webpage در پروژه خود استفاده کنید. برای این کار در ادامه توضیح داده شده است.
8)بیلد و رآن پروژه.
در قسمت اخر به صورت کامل و با تصویر توضیح مربوطه داده شده است
توسعه مینی اپ در اپسان
هدف این بخش ارائه ساختار نمونه برای توسعه یک مینیاپلیکیشن برای سرویس اپسان است. واضح است روشهای مختلفی برای توسعه مینیاپ وجود دارد که یکی از آنها در ادامه بررسی شده است.
ایجاد پروژه
- برنامه IntelliJ IDE را باز کنید.
از منوی باز شده، روی Create New Project کلیک کنید. یا از طریقFile > New > Projectیک پروژه جدید ایجاد کنید. - از میان گزینههای ساخت پروژه جدید، appsan را انتخاب کرده و روی Next کلیک کنید.
- برای پروژه جدید، نام مناسب انتخاب کرده و روی Finish کلیک کنید.
- پروژهای مشابه ساختار زیر ساخته خواهد شد:
نصب نیازمندی های پروژه
در این بخش راهنمای قدمبهقدم نصب نیازمندیها برای یک پروژه در اپسان ارائه شده است.
با رفتن به این نشانی، آخرین نسخه پلاگین را دانلود و از حالت فشرده خارج کنید:
مشاهده لینک دانلود پلاگین
فعال سازی پلاگین(روش پیشنهادی)
ابتدا باید پلاگین اینتلیجی اپسان را فعال کنید. برای این کار نرم افزار intelij Idea را باز کنید و به بخش settings بروید یا کلید Ctrl + Alt + S را بزنید. در این بخش قسمت plugins بروید. روی کلید چرخ دنده کلیک کرده و Install Plugin from Disk را بزنید.
در پنجره ی باز شده فایل zip پلاگین اپسان دانلود شده را انتخاب کنید. این فایل با نام appsan-intelij-*.zip داخل فابل زیپ sdk است .
در صورت نیاز نرم افزار را بسته و دوباره باز کنید یا کلید Restart IDE را بزنید.
.
اضافه کردن اپسان
از منو فایل، Settings را انتخاب کنید:
در پنجره باز شده، به Languages & Frameworks > Appsan مراجعه کرده و آدرس پوشه SDK دانلود شده را در قسمت Path to SDK وارد نمایید:
تنظیم و اجرای مینیاپ در IntelliJ IDEA
برای اجرای مینیاپ، در قسمت Run Config در بالا سمت راست IntelliJ روی Add Configuration یا Edit Configuration کلیک کنید. در پنجره باز شده، روی + زده و Appsan را انتخاب نمایید.
سپس نام موردنظر برای اجرا و فایل اجرایی را انتخاب کنید. Run type را روی Web قرار دهید.
پس از اجرای پروژه، آدرس وب نمایش داده شده در کنسول را کپی کرده و در مرورگر باز کنید.
برای ارتباط با دستگاههای اندرویدی، Android Platform Tools را دانلود کرده و پوشه platform-tools را در مسیر libs/bin/ جایگزین نمایید.
۵) خطاهای احتمالی
در این قسمت به احتمال زیاد با این خطای رایج مواجه میشوید: Project has no JDK configuration
برای رفع این مشکل، در پنجره تنظیمات بخش Project باید نسخه SDK را انتخاب کنید. نسخه Java 11 یا بالاتر را برگزینید و در صورت عدم وجود، روی Add کلیک کنید تا بهصورت خودکار دانلود شود.
نمایش لاگها در Appsan
اپسان برخی از رخدادها و خطاها را به صورت log نمایش میدهد. یکی از این موارد، درخواستهای وب است که متن ارسالی و پاسخ دریافتی آن داخل لاگ قابل مشاهده است.
دسترسی به لاگها از طریق CLI
برای دسترسی به لاگها، دستور زیر را اجرا کنید (به جای <device-id>، شناسه دستگاه خود را قرار دهید):
java -jar libs/Appsan-CLI-1.0-SNAPSHOT.jar logs -d <device-id>
برای بهدست آوردن شناسه دستگاه اندرویدی خود، ابتدا این دستور را اجرا کنید:
java -jar libs/Appsan-CLI-1.0-SNAPSHOT.jar devices
پس از اجرای دستور logs، میتوانید لاگها را در آدرس http://localhost:12982/logs/ در مرورگر دلخواه خود مشاهده کنید:
دسترسی به لاگها در IntelliJ IDEA
برای تنظیم اجرای لاگها در IntelliJ، از منوی اجرا Edit Configurations را باز کنید:
روی دکمه + کلیک کرده و JAR Application را انتخاب کنید:
در قسمت Name نام موردنظر را وارد کنید و در Path to JAR مسیر فایل Appsan-CLI-1.0-SNAPSHOT.jar را انتخاب نمایید. سپس در بخش Program arguments دستور زیر را وارد کنید:
logs -d <device-serial>
که <device-serial> همان شناسه دستگاه است که پیشتر از CLI دریافت کردید.
حالا با اجرای پیکربندی logs در IntelliJ، لاگها در مرورگر نمایش داده میشوند.
نحوه افزودن پروژه به اپسان
در این راهنما، نحوه افزودن یک پروژه وب به پروژه Appsan به صورت گامبهگام توضیح داده میشود. با استفاده از این راهنما، شما میتوانید پروژههای وب خود را بهطور مؤثری درون Appsan ادغام کرده و از قابلیتهای جدید عنصر web-page بهرهمند شوید.
۱. ایجاد پوشههای مورد نیاز
-
ایجاد پوشه
web:- در مسیر اصلی پروژه Appsan، پوشهای به نام
webایجاد کنید. - این پوشه حاوی کد منبع پروژههای وب شما خواهد بود.
- در مسیر اصلی پروژه Appsan، پوشهای به نام
-
ایجاد پوشه
webdist:- در کنار پوشه
web، پوشهای به نامwebdistایجاد کنید. - این پوشه فایلهای ساختهشده (build) پروژههای وب شما را نگهداری میکند.
- در کنار پوشه
۲. اضافه کردن پروژه وب به پوشه web
-
ایجاد پوشه برای پروژه وب:
- درون پوشه
web، پوشهای به نام پروژه وب خود بسازید (مثلاًMyWebProject).
- درون پوشه
-
افزودن کد منبع:
- تمام فایلهای HTML، CSS، JavaScript و سایر فایلهای پروژه وب را در این پوشه کپی کنید.
۳. ساخت پروژه وب
-
ساخت پروژه:
- با ابزار ساخت مناسب (مثل Webpack یا Parcel) پروژه وب خود را بسازید.
- خروجی (build) شامل فایلهای HTML، CSS و JavaScript بهینه شده خواهد بود.
-
کپی خروجی به
webdist:- پس از ساخت، فایلهای خروجی را در پوشهای با همان نام پروژه در
webdistقرار دهید. - مثلاً
webdist/MyWebProject.
- پس از ساخت، فایلهای خروجی را در پوشهای با همان نام پروژه در
۴. استفاده از عنصر webpage در پروژه Appsan
-
افزودن عنصر
webpageبه فایل XML:- در فایل XML پروژه Appsan خود، تگ زیر را اضافه کنید:
<webpage src="MyWebProject" title="پروژه وب من"/> -
تست و اشکالزدایی:
- پروژه Appsan را اجرا کرده و از بارگذاری صحیح صفحه وب اطمینان حاصل کنید.
- در صورت بروز مشکل، تنظیمات پوشههای
web،webdistو ساخت پروژه وب را بررسی کنید.
نکات مهم
- نام پوشهها در
webوwebdistباید یکسان باشد. - برای لینکهای خارجی در
srcاز URLهای HTTPS معتبر استفاده کنید. - پس از هر تغییر در کد منبع، مجدداً پروژه وب را بسازید و خروجی را به
webdistکپی کنید.
این راهنما به شما کمک میکند پروژههای وب خود را بهطور مؤثر در Appsan ادغام کرده و از قابلیتهای جدید بهرهمند شوید.
راهنمای تنظیم پروژه Angular برای استفاده در Appsan
در این راهنما، نحوه تنظیم پروژه Angular به گونهای که فایلهای ساخته شده (build) آن به پوشه webdist در پروژه Appsan منتقل شوند و همچنین پروژه Angular در پوشه web مدیریت شود، توضیح داده میشود. این تنظیمات به شما امکان میدهند که به راحتی از پروژه Angular خود در Appsan استفاده کنید.
۱. ایجاد پوشههای مورد نیاز
-
ایجاد پوشه
web:- در مسیر اصلی پروژه Appsan، یک پوشه به نام
webایجاد کنید. - این پوشه حاوی کد منبع پروژههای وب شما خواهد بود.
- در مسیر اصلی پروژه Appsan، یک پوشه به نام
-
ایجاد پوشه برای پروژه Angular:
- درون پوشه
web، پوشهای به نام پروژه Angular خود بسازید (مثلاًMyAngularProject).
- درون پوشه
۲. ایجاد پروژه Angular در پوشه web
-
ایجاد پروژه Angular در مسیر مناسب:
ng new MyAngularProject --directory web/MyAngularProject -
تست پروژه:
با دستور زیر پروژه را به صورت محلی اجرا کنید و از صحت عملکرد آن مطمئن شوید:
ng serve
۳. تنظیم مسیر خروجی (outputPath) در angular.json
-
باز کردن فایل
angular.json:در ریشه پروژه Angular، فایل
angular.jsonرا باز کنید. -
یافتن تنظیمات
outputPath:در بخش
architect → buildمقدارoutputPathرا پیدا کنید. -
تغییر مسیر خروجی:
مقدار
outputPathرا به مسیر زیر تغییر دهید:"outputPath": "../../webdist/MyAngularProject"
۴. تنظیم baseHref برای پروژه Angular
برای اطمینان از بارگذاری صحیح منابع، baseHref را به ./ تنظیم کنید:
-
از طریق خط فرمان:
ng build --base-href ./ -
در
angular.json:"build": { "options": { "outputPath": "../../webdist/MyAngularProject", "baseHref": "./" } }
۵. ساخت پروژه Angular
-
ساخت پروژه:
ng build -
بررسی فایلهای ساخته شده:
اطمینان حاصل کنید که فایلهای خروجی در پوشه
webdist/MyAngularProjectقرار گرفته باشند.
۶. استفاده از پروژه Angular در Appsan
-
افزودن عنصر
webpageدر فایل XML:<webpage src="MyAngularProject" title="پروژه Angular من"/> -
اجرای پروژه Appsan:
پروژه Appsan را اجرا کرده و از بارگذاری صحیح پروژه Angular مطمئن شوید.
نکات مهم
- مطمئن شوید پوشه Angular در
web/[project-name]قرار دارد. - مسیر
outputPathدرangular.jsonدقیقاً به پوشه مناسب درwebdistاشاره کند. - همیشه
baseHrefرا به./تنظیم کنید. - پس از هر تغییر در پروژه Angular، مجدداً آن را بسازید و خروجی را به
webdistکپی کنید. - نام پوشه در
webdistباید با مقدارsrcدر عنصرwebpageمطابقت داشته باشد.
راهنمای تنظیم پروژه React برای استفاده در Appsan
در این راهنما، نحوه تنظیم یک پروژه React بهگونهای که فایلهای build آن به پوشه webdist در پروژه Appsan منتقل شوند و همچنین پروژه در پوشه web مدیریت شود، آموزش داده میشود. این مراحل مشابه با تنظیمات پروژه Angular بوده ولی با در نظر گرفتن تفاوتهای React و Vite تهیه شده است.
۱. ایجاد پوشههای مورد نیاز
ایجاد پوشه web:
در مسیر اصلی پروژه Appsan خود، یک پوشه به نام web ایجاد کنید. این پوشه محل قرارگیری پروژههای وب شماست.
ایجاد پوشه برای پروژه React:
در داخل پوشه web، یک پوشه به نام دلخواه برای پروژه React ایجاد کنید. مثلاً:
web/MyReactProject
۲. ایجاد پروژه React در مسیر مناسب
با استفاده از Vite و دستور زیر پروژه React را در مسیر دلخواه ایجاد کنید:
npm create vite@latest web/MyReactProject -- --template react
سپس وارد پوشه پروژه شده و پکیجها را نصب کنید:
cd web/MyReactProject
npm install
۳. تنظیم مسیر خروجی (build output)
برای ذخیره فایلهای build در پوشه webdist، فایل vite.config.js را باز کرده و تنظیمات زیر را اضافه کنید:
export default defineConfig({
base: './',
build: {
outDir: '../../webdist/MyReactProject',
emptyOutDir: true,
},
});
توجه: به جای MyReactProject در مسیر outDir نام پوشهای که میخواهید در webdist بسازید را قرار دهید.
۴. تنظیم مسیر (Routing) برای استفاده از مسیرهای داینامیک
در صورتی که اپلیکیشن شما از مسیر داینامیک استفاده میکند، باید از HashRouter به جای BrowserRouter استفاده کنید.
مراحل:
-
نصب React Router:
npm install react-router-dom -
در فایل
App.jsxبه صورت زیر تغییر دهید:import { HashRouter, Routes, Route } from 'react-router-dom';function App() { return ( <HashRouter> <Routes> <Route path="/" element={
} /> <Route path="/results" element={ } /> {/* مسیرهای دیگر */} </Routes> </HashRouter> ); }
۵. ساخت پروژه
پس از اعمال تغییرات بالا، دستور زیر را برای ساخت پروژه اجرا کنید:
npm run build
با اجرای این دستور، فایلهای نهایی در مسیر webdist/MyReactProject قرار میگیرند.
۶. استفاده از پروژه React در Appsan
در فایل XML مربوط به Appsan، عنصر <webpage> را به شکل زیر اضافه کنید:
<webpage src="MyReactProject" title="پروژه React من"/>
مطمئن شوید که src با نام پوشهای که در webdist ساختید مطابقت داشته باشد.
نکات مهم
- پروژه React باید در مسیر
web/[project-name]ایجاد شود. - مسیر خروجی (
outDir) درvite.config.jsباید به../../webdist/[project-name]تنظیم شود. - مقدار
baseباید به'./'تغییر یابد. - برای جلوگیری از مشکلات در مسیرهای داینامیک، از
HashRouterاستفاده کنید. - هر بار که تغییراتی در پروژه ایجاد میکنید، مجدداً دستور
npm run buildرا اجرا نمایید. - در فایل XML Appsan، مقدار
srcباید دقیقاً با نام خروجی درwebdistیکسان باشد.
کتابخانه JavaScript اپسان وب
کتابخانه JavaScript اپسان وب با هدف تسهیل ارتباط بین صفحات وب و پلتفرم اپسان طراحی شده است. این مستند به شما کمک میکند تا از این کتابخانه در وبسایتهای خود استفاده کنید.
نصب کتابخانه
برای نصب کتابخانه اپسان، کافی است از npm استفاده کنید:
npm i @appsan-web/mini-web-sdk
راهاندازی کتابخانه
در ابتدا نیاز است که کتابخانه را در پروژه خود وارد کنید:
import { AppsanWeb } from '@appsan-web/mini-web-sdk';
استفاده از کلاس AppsanWeb
کلاس اصلی برای تعامل با اپسان، AppsanWeb است. این کلاس مسئول مدیریت ارتباطات بین وبسایت شما و صفحه اپسان است.
1. راهاندازی اولیه
برای راهاندازی کتابخانه کافی است تابع initialize را فراخوانی کنید. این تابع به صورت خودکار بعد از بارگذاری کامل صفحه وب شما فعال میشود:
AppsanWeb.initialize();
2. وضعیت آماده بودن اپسان
میتوانید با استفاده از getStatus() وضعیت آماده بودن اپسان را بررسی کنید. این تابع یک BehaviorSubject از نوع رشته بازمیگرداند که میتوانید به تغییرات آن گوش دهید:
const status$ = AppsanWeb.getStatus();
status$.subscribe(status => {
console.log("Appsan Status:", status);
});
وضعیت میتواند یکی از مقادیر زیر باشد:
not readyreadynot availableerror
3. اجرای اکشن در اپسان
تابع runAction برای اجرای اکشن در اپسان استفاده میشود:
AppsanWeb.runAction('myAction').subscribe();
4. مدیریت دکمه بازگشت
برای کنترل رفتار دکمه بازگشت از متد setCustomBackHandler استفاده کنید. در حالت پیشفرض اپسان هیستوری مینیوب شما را مدیریت میکند و این تابع تنها برای مدیریت پیشرفته بازگشت کاربرد دارد:
AppsanWeb.setCustomBackHandler(() => {
// Custom back behavior
});
5. ارسال درخواست HTTP
برای ارسال درخواست HTTP میتوانید از متد httpCall استفاده کنید:
AppsanWeb.httpCall('https://api.example.com', 'GET', {}, {}).subscribe(response => {
console.log('HTTP Response:', response);
});
6. دریافت اطلاعات بایند (Bind)
متد getBind برای دریافت اطلاعات یک بایند خاص استفاده میشود. این متد یک Subject برمیگرداند که میتوانید به آن subscribe کنید تا اطلاعات بایند را دریافت کنید:
AppsanWeb.getBind('myBind').subscribe(data => {
console.log('Bind data:', data);
});
7. تنظیم مقدار متغیر
با استفاده از متد setVariable میتوانید مقدار یک متغیر را در اپسان تنظیم کنید:
AppsanWeb.setVariable('variableId', 'newValue').subscribe();
8. دریافت مقدار متغیر
برای دریافت مقدار یک متغیر از اپسان از متد getVariable استفاده کنید. این متد نیز یک Subject برمیگرداند که میتوانید مقدار متغیر را دریافت نمایید:
AppsanWeb.getVariable('variableId').subscribe(variable => {
console.log('Variable:', variable);
});
تنظیم امکان بازگشت و رفتار دکمه بازگشت در اپسان
مقدمه
در این راهنما، به نحوهی مدیریت رفتار دکمه بازگشت در اپسان وب پرداخته میشود. اپسان وب به توسعهدهندگان اجازه میدهد تا امکان بازگشت و عملکرد دکمه بازگشت را سفارشی کنند و یا از رفتار پیشفرض آن استفاده کنند.
استفاده از رفتار پیشفرض
رفتار پیشفرض اپسان بر اساس تعداد صفحات موجود در تاریخچه عمل میکند:
- بسته شدن اپلیکیشن: اگر تعداد صفحات موجود در تاریخچه ≤ 1 باشد، اپلیکیشن بسته میشود.
- بازگشت به صفحه قبلی: اگر تاریخچه بیشتر از 1 صفحه داشته باشد، به صفحه قبلی بازمیگردد. در صورت تعریف
customBackHandler، این تابع به جای رفتار پیشفرض اجرا میشود.
پاک کردن تاریخچه
برای پاک کردن تاریخچه و تنظیم تعداد صفحات موجود، میتوانید از تابع پیشفرض clearBackStack استفاده کنید:
AppsanWeb.getAvailableHistoryCountProvider()?.clearBackStack();
قابلیت customBackHandler در AppsanWeb
این متد تنها در صورتی صدا می شود که availableBackCount بزرگ تر از 1 باشد.
- تعریف customBackHandler: این متغیر میتواند تابع شما را ذخیره کند که هنگام فشار دادن دکمه بازگشت اجرا میشود.
- متد setCustomBackHandler: برای تنظیم تابع سفارشی استفاده میشود:
AppsanWeb.setCustomBackHandler(() => { // handle back here your way });
توجه: هنگام استفاده از تابع سفارشی، رفتار پیشفرض اجرا نمیشود و میتوانید با اکشن app/forceback بازگشت انجام دهید.
تنظیم availableBackCount
برای تغییر availableBackCount در سوپر اپ از روش زیر استفاده کنید
(AppsanWeb as any).instance.post((AppsanWeb as any).MESSAGE_TYPE_AVAILABLE_HISTORY_COUNT, <back_count>);
سفارشیسازی امکان بازگشت
برای تعریف رفتار خاص بازگشت، یک کلاس جدید از رابط AvailableBackCountProvider پیادهسازی کنید. این رابط شامل متدهای زیر است:
getAvailableHistoryCount(): تعداد صفحات موجود را برمیگرداند.clearBackStack(): تاریخچه را پاک و بازنشانی میکند.
نمونه: غیرفعال کردن بازگشت و بستن مینیاپ
import { AppsanWeb, AvailableBackCountProvider } from "./AppsanWeb";
export class DisableBackAndCloseProvider implements AvailableBackCountProvider {
getAvailableHistoryCount(): number {
return 1;
}
clearBackStack(): void {
// No-op: back is effectively disabled
}
}
با بازگرداندن ۱ در getAvailableHistoryCount()، بازگشت غیرفعال و مینیاپ بسته میشود.
نمونه پیادهسازی ارائهدهنده سفارشی تأیید قبل از بازگشت
import { AppsanWeb, AvailableBackCountProvider } from "./AppsanWeb";
export class ConfirmableBackCountProvider implements AvailableBackCountProvider {
private availableHistoryCount = 1;
constructor() {
// Patch history.pushState so we can track forward navigation
const h = window.history as any;
const originalPushState = h.pushState;
h.pushState = (...args: any[]) => {
this.onPushState();
return originalPushState.apply(h, args);
};
// Track browser back/forward via popstate
window.addEventListener("popstate", () => this.onPopState());
// Hook custom back handler to show a confirmation dialog
AppsanWeb.setCustomBackHandler(() => this.showConfirmationDialog());
}
private onPushState(): void {
this.availableHistoryCount++;
(AppsanWeb as any).instance.post(
(AppsanWeb as any).MESSAGE_TYPE_AVAILABLE_HISTORY_COUNT,
this.availableHistoryCount
);
}
private onPopState(): void {
this.availableHistoryCount = Math.max(0, this.availableHistoryCount - 1);
(AppsanWeb as any).instance.post(
(AppsanWeb as any).MESSAGE_TYPE_AVAILABLE_HISTORY_COUNT,
this.availableHistoryCount
);
}
getAvailableHistoryCount(): number {
return this.availableHistoryCount;
}
clearBackStack(): void {
this.availableHistoryCount = 1;
(AppsanWeb as any).instance.post(
(AppsanWeb as any).MESSAGE_TYPE_AVAILABLE_HISTORY_COUNT,
1
);
}
private showConfirmationDialog(): void {
if (confirm("آیا مطمئن هستید میخواهید بازگشت کنید؟")) {
history.back();
}
}
}
نحوه استفاده
- نمونه سازنده را بسازید:
const backHandler = new ConfirmableBackCountProvider(); - کلاس ساخته شده را به setAppsanBackCountProvider بدهید
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برای هر درخواست مقدار متفاوتی تعیین کرد.