/
/
REST Provider یکی از انواع Providerهای مبتنی بر Web Service است که برای ارتباط با سرویسهای REST استفاده میشود. در این نوع Provider، اطلاعات سرویس، آدرس Endpoint، Method، Parameterها، نوع ارسال درخواست و ساختار خروجی تعریف میشود.
REST Provider امکان اتصال GraphBPMS به سرویسهای REST داخلی یا خارجی را فراهم میکند. در این Provider، درخواست HTTP ساخته شده و نتیجه دریافتشده بر اساس تنظیمات تعریفشده پردازش میشود.
REST Provider فقط مسئول تعریف قرارداد ارتباط با سرویس است. رفتار نهایی Provider وابسته به تنظیمات Request، Parameterها و ساختار Response سرویس مقصد است.
ایجاد REST Provider بهصورت مرحلهای انجام میشود. در هر مرحله بخشی از اطلاعات مورد نیاز برای ساخت درخواست و مدیریت پاسخ سرویس تعریف میشود.
در مرحله اول، اطلاعات اصلی ارتباط با سرویس مشخص میشود. این اطلاعات مشخص میکند Provider به کدام سرویس REST متصل خواهد شد.
| مورد | توضیح |
|---|---|
| نام منبع | عنوان قابل تشخیص برای سرویس |
| آدرس سرویس | Endpoint مورد استفاده برای ارسال درخواست |
| Method | نوع عملیات HTTP مورد استفاده برای فراخوانی سرویس |
در این مرحله، اطلاعات مربوط به سرویس REST شامل آدرس، نحوه ارسال درخواست و تنظیمات مرتبط با ارتباط تعریف میشود.
آدرس Endpoint سرویس مقصد در این بخش تعریف میشود. این آدرس میتواند شامل Placeholderهایی باشد که در زمان اجرا با مقدار واقعی جایگزین میشوند.
نوع درخواست HTTP مشخص میکند که Provider چگونه با سرویس مقصد ارتباط برقرار کند.
در REST Provider امکان تعریف پارامترهایی وجود دارد که در URL یا بخشهای دیگر درخواست استفاده میشوند. Placeholderها اجازه میدهند مقدار مورد نیاز در زمان اجرا جایگزین شود.
https://service-url.com/customer/{CustomerId}
ساختار URL و Placeholderها باید مطابق قرارداد واقعی سرویس مقصد تعریف شوند. تغییر در Endpoint یا Contract سرویس نیازمند بررسی Providerهای وابسته است.
در REST Provider میتوان نحوه ارسال درخواست، نوع Content و اطلاعات مورد نیاز برای ارسال به سرویس را مشخص کرد.
اطلاعات حساس مانند Token، Password یا Credential واقعی نباید در Screenshot، مثال آموزشی یا مستندات عمومی قرار گیرد.
در REST Provider، پارامترها مشخص میکنند چه اطلاعاتی در زمان اجرای درخواست به سرویس ارسال شود و هر پارامتر در کدام بخش از Request قرار گیرد. مدیریت صحیح Parameterها باعث میشود قرارداد ارتباطی بین Provider و سرویس مقصد بهدرستی پیادهسازی شود.
در این بخش، لیست Parameterهای مورد استفاده در درخواست REST تعریف میشود. هر Parameter میتواند دارای مشخصات مختلفی مانند نام، مقدار، محل ارسال و نوع محتوا باشد.
Content Type مشخص میکند اطلاعات ارسالی در Request با چه ساختاری به سرویس مقصد ارسال شود. انتخاب صحیح Content Type باید مطابق قرارداد سرویس مقصد انجام شود.
| Content Type | کاربرد |
|---|---|
| JSON | ارسال اطلاعات در قالب JSON Body |
| Form Data | ارسال اطلاعات به شکل Form Data |
| Text / Raw Content | ارسال متن یا محتوای خام مطابق نیاز سرویس |
هر Parameter در REST Provider میتواند در بخش مشخصی از Request قرار گیرد. محل قرارگیری Parameter تعیین میکند مقدار آن چگونه به سرویس مقصد ارسال شود.
در این حالت مقدار Parameter در آدرس URL سرویس قرار میگیرد. این روش معمولاً برای پارامترهایی استفاده میشود که بخشی از مسیر Endpoint هستند.
https://api.example.com/customer/{CustomerId}
در این حالت Parameter بهصورت Query String به انتهای URL اضافه میشود.
https://api.example.com/customers?page=1
در این حالت مقدار Parameter در Header درخواست ارسال میشود. این روش برای اطلاعاتی مانند تنظیمات درخواست یا مقادیر مورد نیاز سرویس استفاده میشود.
Authorization: Bearer Token
در این حالت مقدار Parameter در Body درخواست قرار میگیرد. این روش معمولاً در درخواستهای POST استفاده میشود.
برای برخی Parameterها میتوان مقدار پیشفرض یا ثابت تعریف کرد. این قابلیت باعث میشود در صورت ارسال نشدن مقدار توسط Caller، مقدار تعریفشده در Provider استفاده شود.
اگر Caller مقدار ارسال نکند، مقدار Default/Constant استفاده میشود. اگر Caller مقدار مؤثر ارسال کند، مقدار ارسالشده برای اجرا استفاده خواهد شد.
Parameter: Language Default: fa Call 1: No Value Result: fa Call 2: Language = en Result: en
Constant / Default نباید بهعنوان Secret Storage معرفی شود. این قابلیت فقط برای مقداردهی پیشفرض Parameter است و جایگزین مکانیزم مدیریت Secret نیست.
در REST Provider، Output Fieldها مشخص میکنند چه اطلاعاتی از پاسخ سرویس دریافت و در خروجی Provider ارائه شود. با استفاده از Output Field Script میتوان مقدار خروجی یک فیلد را قبل از ارائه نهایی، پردازش یا تغییر داد.
پس از تعریف Request و ارسال درخواست به سرویس REST، ساختار خروجی سرویس باید در Provider مشخص شود. Output Fieldها تعیین میکنند چه بخشهایی از Response بهعنوان خروجی Provider در دسترس باشند.
هر Output Field یک مقدار مشخص از پاسخ سرویس را نمایش میدهد. در زمان تعریف Output Field باید مسیر دریافت مقدار و نوع استفاده از آن مشخص شود.
| مورد | توضیح |
|---|---|
| نام Field | نام فیلد خروجی در Provider |
| مسیر مقدار | مسیر دسترسی به مقدار مورد نظر در Response سرویس |
| نوع مقدار | نوع داده خروجی فیلد |
Output Fieldها باید مطابق ساختار واقعی پاسخ سرویس تعریف شوند. در صورت تغییر ساختار Response سرویس، تنظیمات Output Field نیز باید بررسی شود.
Response:
{
"id": 10,
"name": "Customer"
}
Output Fields:
Id
Name
در برخی سناریوها مقدار خروجی سرویس نیاز به پردازش دارد. در این حالت میتوان برای Output Field یک Script تعریف کرد تا مقدار نهایی قبل از ارائه خروجی محاسبه شود.
در Output Field Script، خروجی نهایی باید در متغیر result قرار گیرد.
مقادیر خروجی همان رکورد از طریق args در دسترس هستند و مقدار نهایی فیلد باید در result قرار داده شود.
result = !(args.IsOk);
result = !(args.IsOk);
result = args.IsOk ? 'OK' : 'NOT_OK';
result = [args.FirstName, args.LastName]
.filter(Boolean)
.join(' ');
result =
Number(args.Price || 0) *
Number(args.Quantity || 0);
result =
args.Value == null
? ''
: String(args.Value).trim();
راهنمایی که داخل Script IDE یا UI محصول نمایش داده میشود باید بهصورت کامل استخراج و در این بخش قرار گیرد. متن راهنمای داخلی نباید خلاصه یا جایگزین شود.
args قبل از استفاده بررسی شوند.result قرار گیرد.از معرفی Syntax، Helper یا رفتارهایی که در Script IDE واقعی GraphBPMS تست نشدهاند بهعنوان قابلیت رسمی خودداری شود.