بگذارید بازدیدکنندگان تغییرات را ذخیره کنند
هدف
بگذارید کسی در درگاه شما درخواستی ثبت کند، تغییرش دهد یا حذفش کند — نه فقط بخواند.
پیش از شروع
- درگاهی که چه کسی میتواند باز کند در آن روی کسانی که وارد میشوند است. نوشتن در درگاهی که هر کسی بازش میکند رد میشود: کسی نیست که تغییر به او نسبت د اده شود. ببینید از بازدیدکنندگان بخواهید وارد شوند.
- یک Custom API برای هر کاری که میتوانند بکنند. APIای که میخواند همان APIای نیست که مینویسد، و پلتفرم با آن مثل هر دو رفتار نمیکند.
گامها
۱. Custom API را بنویسید. برای ساختن، فعل آن را POST بگذارید؛ برای تغییر، PATCH؛ برای
حذف، DELETE. برایش یک طرح درخواست بنویسید: نخستین چیزی است که میان بازدیدکننده و ستونی که
نباید تنظیم کند میایستد. بدون آن، بدنهٔ بازدیدکننده فقط فیلدهایی را میتواند داشته باشد که اسکریپت
شما با getInput میخواند، و هر چیز دیگری رد میشود.
۲. راهحل خود را باز کنید، درگاهها را انتخاب کنید و درگاه را باز کنید.
۳. زیر چه چیزی را میخواند، افزودن چیزی برای خواندن را بزنید و انتخاب کنید:
- جدولی که صفحهتان در
createRecord/updateRecord/deleteRecordنام میبرد، - عملیات — ساختن یک رکورد، تغییر یک رکورد یا حذف یک رکورد،
- APIای که پاسخ میدهد. ۴. ذخیره را بزنید.
هر یک از پنج کاری که یک صفحه میتواند بکند ردیف خودش را میخواهد. درگاهی که میتواند درخواستها را فهرست کند تا ردیف ساختن را هم اضافه نکنید نمیتواند یکی بسازد — این دو قرارداد جدا هستند، و صفحه فقط میتواند نام جدول را بگوید.
صفحهٔ شما چه میکند
هیچ چیز تازهای. همان کنشهایی که برای برنامهای درون پلتفرم میکشیدید:
createRecord("par_request", {
par_name: getState("subject"),
par_detail: getState("detail")
}, "saved");
در درگاه، این به فراخوانی APIای تبدیل میشود که برای par_request / ساختن مجاز کردهاید. نقشه
تغییر نمیکند — و این تمام هدف منتشرکردن یک برنامه در دو جاست.
API چه باید بکند
تصمیم بگیرد چه کسی اجازه دارد، و آنچه را بازدیدکننده نباید تعیین کند خودش پر کند.
var me = portalEmail();
if (me == '') {
throwValidationError('پیش از ثبت درخواست وارد شوید.');
} else {
var subject = getInput('par_name');
if (subject == '') {
throwValidationError('لطفاً برای درخواستتان یک عنوان بگذارید.');
} else {
// **بازدیدکننده تعیین نمیکند چه کسی آن را ثبت کرده است.** هر چه صفحه برای این ستون فرستاده
// نادیده گرفته میشود؛ نشانی از نشست واردشدهٔ خودش میآید.
var id = createRecord('par_request', {
par_name: subject,
par_detail: getInput('par_detail'),
par_raised_by_email: me,
par_status: 'New'
});
setOutput('record', getRecord('par_request', id));
}
}