14.7. گام «لیست فیلدهای خروجی سرویس»
در این مرحله ابتدا «نوع محتوای پاسخ» یا Response Content Type تعیین میشود.
این انتخاب مشخص میکند که سامانه پاسخ سرویس را چگونه تفسیر کند.
نمونههای متداول شامل
text/plain،
application/json
و در برخی سناریوها محتوای فایل است.
اگر پاسخ JSON باشد، امکان تعریف فیلدهای ساختاریافته خروجی وجود دارد. همچنین اگر بدنه پاسخ یک آرایه باشد، گزینه «محتوی بدنه خروجی آرایه است؟» باید متناسب با قرارداد سرویس تنظیم شود.
هر ردیف فیلد خروجی معمولاً میتواند این ویژگیها را داشته باشد:
- script: آیا این فیلد از طریق اسکریپت محاسبه میشود؟
- nullable: آیا مقدار این فیلد میتواند تهی باشد؟
- نوع داده: مثل String یا Boolean
- نام فیلد: مانند
IsOkیاA_ResponseHeader - منبع مقدار: از
bodyیاheader
14.8. Output Field Script در REST
یکی از قابلیتهای مهم REST Provider تعریف فیلد خروجی محاسباتی است. این همان بخشی است که قبلاً تصویر کافی نداشت و اکنون با تصاویر کامل مستند شده است. برای استفاده از این قابلیت:
- یک ردیف خروجی جدید اضافه کنید.
- گزینه
scriptرا فعال کنید. - نوع داده و نام فیلد محاسباتی را مشخص کنید؛ مثلاً
IsNotOk. - از دکمه IDE وارد محیط Script Editor شوید.
- منطق محاسبه را با استفاده از خروجیهای دیگر بنویسید و نتیجه نهایی را در متغیر
resultقرار دهید.
در نمونه موجود، فیلد محاسباتی IsNotOk بر اساس فیلد IsOk ساخته شده است:
result = !(args.IsOk);
در این الگو، args شامل سایر فیلدهای خروجی همان رکورد است
و سامانه انتظار دارد مقدار نهایی فیلد محاسباتی در متغیر result ذخیره شود.
بنابراین این قابلیت برای ساخت فیلدهای مشتقشده، پرچمهای کمکی و نرمالسازی خروجی بسیار کاربردی است.
متن کامل راهنمایی که داخل Script IDE / UI همین بخش نمایش داده میشود باید از Build مقصد استخراج و کامل و بدون خلاصهسازی ناقص در همین محل قرار گیرد. تصویر واقعی IDE که در سند اولیه وجود دارد در بالا حفظ شده است؛ اما متن راهنما نیز باید بهصورت قابل جستوجو در Wiki درج شود.
مثالهای تکمیلی برای Output Field Script
مثالهای زیر [راهکار عمومی JavaScript] هستند و فقط از قرارداد مستند همین بخش
(args برای خروجیهای همان رکورد و result برای مقدار نهایی) استفاده میکنند.
نام فیلدها نمونه است و باید با Schema واقعی Provider جایگزین شود.
مثال ۱ — تبدیل Boolean به Status متنی
result = args.IsOk ? 'OK' : 'NOT_OK';
مثال ۲ — ترکیب دو خروجی متنی
result = [args.FirstName, args.LastName]
.filter(Boolean)
.join(' ');
مثال ۳ — محاسبه مقدار عددی
result =
Number(args.Price || 0) *
Number(args.Quantity || 0);
مثال ۴ — مدیریت مقدار Null / خالی
result =
args.Value == null
? ''
: String(args.Value).trim();