اکشنها
اکشن شخصیسازی شده
API خودتان را به موچت متصل کنید، ورودیها را تعریف کنید و دسترسی ربات به پاسخ را کنترل کنید.
مرور کلی
با اکشن شخصیسازی شده، موچت یک API را از سمت سرور فراخوانی میکند و از پاسخ آن در گفتگو استفاده میکند. این روش برای دریافت اطلاعات بهروز، جستوجوی رکورد در سامانهٔ خودتان یا انجام کاری از طریق API مناسب است.
مناسب برای
کاری که از طریق API قابل انجام است؛ مثل دریافت آبوهوا، بررسی وضعیت یک درخواست یا تغییر اشتراک در سامانهٔ شما.
ساخت اکشن
اکشن جدید بسازید
در اکشنها، ایجاد اکشن و سپس اکشن شخصیسازی شده را انتخاب کنید.
تنظیمات عمومی را بنویسید
نام و توضیح زمان اجرا را وارد کنید و ذخیره و ادامه را بزنید.
نوع اکشن را انتخاب کنید
در نوع اکشن، فراخوانی API را انتخاب کنید و ادامه دهید.
ورودیها و درخواست را تنظیم کنید
در API، اطلاعات موردنیاز و روش ارسالشان را تعریف کنید. جزئیات در API آمده است.
پاسخ را آزمایش کنید
در تست خروجی، درخواست زنده بفرستید یا نمونهٔ JSON وارد کنید. سپس دسترسی موچت به فیلدهای پاسخ را در دسترسی دیتا تعیین کنید.
ذخیره و فعال کنید
ایجاد اکشن را بزنید، وضعیتش را در اکشنهای من بررسی کنید و یک درخواست مناسب را در آزمایشگاه امتحان کنید.
تنظیمات عمومی
نام اکشن: نامی روشن برای کاری که انجام میدهد انتخاب کنید؛ مثلاً Get_Weather.
چه زمانی استفاده کند: بگویید اکشن چه اطلاعاتی میدهد، در پاسخ به چه درخواستهایی باید اجرا شود و اگر اطلاعات کم بود، موچت چه چیزی را بپرسد. برای مثال: «وقتی کاربر آبوهوای فعلی یک شهر را میپرسد، از این اکشن استفاده کن. اگر شهر مشخص نیست، ابتدا نام شهر را بپرس.»

API
اطلاعات موردنیاز اکشن
موچت اطلاعات موردنیاز را از گفتگو استخراج میکند و اگر لازم باشد، از کاربر میپرسد. هر ورودی یک متغیر در درخواست API میشود.
| تنظیم | کاربرد |
|---|---|
| نام | نام متغیر؛ برای استفاده در قالب درخواست، نامی مانند city یا request_id انتخاب کنید |
| نوع | متن (string)، عدد (number)، مقدار منطقی (boolean) یا شیء (object) |
| توضیح | معنی ورودی و قالب موردانتظار؛ این توضیح به موچت کمک میکند سؤال درست بپرسد |
| اجباری | مشخص میکند اجرای اکشن به این ورودی نیاز دارد |
| آرایه | مشخص میکند ورودی فهرستی از مقادیر همان نوع است |
نام ورودیها نباید تکراری باشد. برای نام متغیر از حروف انگلیسی، عدد و زیرخط استفاده کنید و با حرف شروع کنید. اگر API ورودی متغیر ندارد، میتوانید فهرست ورودیها را خالی بگذارید.

درخواست API
روش درخواست را از GET، POST، PUT، PATCH یا DELETE انتخاب کنید و URL کامل API را وارد کنید. ورودیها را با قالب دو آکولاد، مانند {{city}}، در بخشهای درخواست قرار دهید:
| بخش | نمونه و کاربرد |
|---|---|
| URL | قرار دادن متغیر در مسیر، مثل https://api.example.com/requests/{{request_id}} |
| پارامترها | جفت کلید و مقدار برای Query string؛ مثل city با مقدار {{city}} |
| هدر | هدرهای موردنیاز API، مانند Authorization یا Accept |
| بدنه | دادهٔ JSON برای روشهایی که بدنه میپذیرند |

میتوانید نام متغیر را مستقیماً با دو آکولاد بنویسید یا با ایجاد متغیر، ورودی تعریفشده را انتخاب کنید. با واردکردن Query string در URL، پارامترهای آن خودکار به جدول پارامترها اضافه میشوند.
هر متغیری که استفاده میکنید باید در ورودیها تعریف شده باشد. ورودی اختیاریای را که ممکن است خالی بماند، در بخش الزامی مسیر یا هدر قرار ندهید؛ خالیبودن مقدارِ متغیرِ استفادهشده مانع ساخت درخواست میشود.
برای GET بدنه نفرستید. در روشهای دیگر، بدنه باید JSON معتبر باشد. اگر مقدار یک فیلد فقط متغیر باشد، نوع واقعی مقدار حفظ میشود؛ برای مثال در بدنهٔ زیر، quantity میتواند عدد و enabled مقدار منطقی بماند:
{
"quantity": "{{quantity}}",
"enabled": "{{enabled}}"
}برای این نمونه، ورودی quantity را از نوع number و enabled را از نوع boolean تعریف کنید. مقدار شیء یا آرایه را هم بهعنوان کل مقدار یک فیلد بگذارید؛ آن را وسط متن یا URL قرار ندهید. کوتیشن و خط جدید داخل متن هنگام ساخت JSON بهدرستی کدگذاری میشوند.
تست خروجی
- مستقیم: برای تست زنده، مقادیر آزمایشی ورودیها را بدهید و تست خروجی را بزنید. وضعیت HTTP و JSON برگشتی را بررسی کنید. این درخواست واقعی است و میتواند دادههای سرویس را تغییر دهد.
- دیتا فرضی: وقتی میخواهید ساختار پاسخ را دستی تعریف کنید، نمونهٔ JSON وارد کنید. این کار ساختار و انتخاب فیلدها را آماده میکند؛ در گفتگوی واقعی همچنان API فراخوانی میشود.
پاسخ API باید JSON با ریشهٔ شیء یا آرایه باشد. پاسخ HTML، متن ساده یا پاسخ خالی برای این اکشن مناسب نیست. پس از تغییر URL، ورودیها یا ساختار پاسخ، تست را دوباره انجام دهید و فیلدهای مجاز را بازبینی کنید.

دسترسی دیتا
| گزینه | رفتار |
|---|---|
| دسترسی دیتا کامل | تمام محتوای پاسخ API در اختیار موچت قرار میگیرد. |
| دسترسی دیتا محدود | فقط فیلدهای انتخابشده از پاسخ در اختیار موچت قرار میگیرند. دستکم یک فیلد انتخاب کنید. |
برای نمونه، اگر API علاوه بر status و tracking_url، یادداشت داخلی هم برمیگرداند، فقط فیلدهای لازم برای پاسخ کاربر را انتخاب کنید. جدول، فیلدهای سطح اول پاسخ را نشان میدهد. انتخاب یک شیء یا آرایه، تمام محتوای زیرمجموعهٔ آن را هم در دسترس قرار میدهد؛ اگر فقط بخشی از آن باید به موچت برسد، پاسخ API را طوری تنظیم کنید که دادهٔ موردنیاز در فیلدی جدا برگردد.

مثالها
دریافت آبوهوا
اکشن Get_Weather را با یک ورودی اجباری به نام city از نوع string و توضیح «نام شهری که کاربر آبوهوایش را میخواهد» بسازید. روش را GET و URL را این مقدار قرار دهید:
https://wttr.in/{{city}}?format=j1بدنه لازم نیست. در تست زنده، مقدار city را London بگذارید و تست خروجی را بزنید.
پس از دریافت پاسخ، دسترسی دیتا محدود را انتخاب کنید و فقط current_condition را فعال کنید. این بخش اطلاعات آبوهوای فعلی، از جمله temp_C، FeelsLikeC و weatherDesc را دارد. فیلدهای nearest_area، request و weather را انتخاب نکنید تا اطلاعات اضافی و پیشبینی چندروزه به موچت فرستاده نشود.
در آزمایشگاه بپرسید «آبوهوای لندن الان چطور است؟». بررسی کنید اکشن با ورودی درست اجرا شود و پاسخ بر اساس دادهٔ برگشتی باشد. اگر فقط «آبوهوا چطور است؟» بپرسید، موچت باید شهر را از شما بپرسد.
تغییر اشتراک از طریق API خودتان
اگر سرویس شما API تغییر اشتراک دارد، اکشن Update_Subscription را با دو ورودی اجباری subscription_id و plan از نوع string بسازید. در زمان اجرا بنویسید که فقط پس از مشخصشدن اشتراک و طرح درخواستی کاربر، تغییر را انجام دهد.
برای APIای با قرارداد زیر، روش PATCH را انتخاب کنید و آدرس API خودتان را جایگزین کنید:
https://api.example.com/subscriptions/{{subscription_id}}{
"plan": "{{plan}}"
}هدر احراز هویت موردنیاز سرویس را اضافه کنید. برای تست، از اشتراک آزمایشی و یک طرح معتبر در همان سرویس استفاده کنید. پاسخ موفق API میتواند به این شکل باشد:
{
"subscription_id": "sub_123",
"plan": "premium",
"status": "active"
}فیلدهای لازم را در دسترس موچت قرار دهید و نتیجه را هم در گفتگو و هم در سامانهٔ اشتراک بررسی کنید. پیام موفقیت باید پس از موفقیت واقعی API گفته شود.
محدودیتها
- مهلت اجرای درخواست حداکثر ۳۰ ثانیه است.
- پاسخ خام API حداکثر 1 MiB است. دادهای که پس از اعمال دسترسی به موچت میرسد باید حداکثر 20 KiB باشد؛ برای پاسخهای بزرگ، فیلدهای محدود انتخاب کنید.
- پاسخ باید وضعیت موفق HTTP 2xx داشته باشد. تغییر مسیر خودکار دنبال نمیشود؛ URL نهایی API را وارد کنید.
- در حالت دسترسی محدود، ریشهٔ پاسخ باید شیء JSON باشد. برای آرایهٔ ریشه، پاسخ را در API خودتان داخل یک شیء قرار دهید یا با رعایت سقف حجم از دسترسی کامل استفاده کنید.
رفع مشکل
فعالبودن اکشن و توضیح زمان اجرا را بررسی کنید. توضیح باید به درخواست واقعی کاربر مرتبط باشد. ورودی اجباری مبهم میتواند باعث پرسشهای نامناسب یا اجرا نشدن شود.
روش، URL نهایی، هدر احراز هویت و مقدار ورودیها را بررسی کنید. متغیرها باید با نام دقیق تعریف شده باشند. مطمئن شوید پاسخ، JSON معتبر با وضعیت موفق است و از سقف زمان و حجم عبور نمیکند.
نمونهٔ دستی از API واقعی داده نمیگیرد. تست زنده را با همان ورودیها اجرا کنید و شکل پاسخ واقعی را با نمونه مقایسه کنید. وجود فیلدهای انتخابشده در پاسخ واقعی هم ضروری است.
فیلدهای انتخابشده در دسترسی محدود را بررسی کنید. پس از تغییر ساختار API، تست خروجی و انتخاب فیلدها را بهروز کنید. برای مشکل حجم، ابتدا دادهٔ برگشتی و فیلدهای مجاز را کم کنید.