14.5. گام «لیست پارامترها» و Request Content Type
پس از تنظیم اطلاعات اصلی سرویس، وارد مرحله تعریف پارامترهای ورودی میشوید.
در این گام ابتدا «نوع محتوای درخواست» یا Request Content Type مشخص میشود.
این انتخاب، نحوه ساخت Payload و همچنین گزینههای قابل انتخاب برای محل قرارگیری پارامترها را تعیین میکند.
- application/json: برای ارسال داده بهصورت JSON.
- application/json; charset=utf-8: همان JSON با تعیین صریح charset.
- application/x-www-form-urlencoded: برای ارسال دادههای فرم URL-Encoded.
- multipart/form-data: برای ارسال فایل و فیلدهای همراه آن.
هر ردیف پارامتر ورودی معمولاً شامل این اجزاست:
- نوع داده مانند String، Boolean یا File
- مقدار یا مقدار پیشفرض / نمونه
- نام پارامتر
- محل قرارگیری مانند url، header، body یا form-data
14.6. رفتار محل قرارگیری پارامترها (Parameter Location)
محل قرارگیری پارامتر به Content-Type و ماهیت پارامتر وابسته است:
| سناریو | محلهای رایج | توضیح |
|---|---|---|
| Query / Path like URL | url | برای مقادیری که باید داخل آدرس یا Query String جایگذاری شوند. |
| Header | header | برای هدرهایی مانند Authorization. |
| JSON Request | body | برای فیلدهایی که داخل بدنه JSON قرار میگیرند. |
| Form URL Encoded | body | برای کلید/مقدارهایی که در بدنه فرممانند ارسال میشوند. |
| Multipart | form-data | برای فایلها و فیلدهای همراه آن در فرم چندبخشی. |
در نمونههای تصویری، دیده میشود که:
- پارامتر
Authorizationدرheaderتعریف شده است. - پارامتر
fileدر سناریوی multipart از نوعFileو محلform-dataدارد. - پارامترهای
modelوlanguageبسته به Content-Type درbodyیاform-dataقرار گرفتهاند. - پارامتر
rememberMeValueبرای پرکردن Query String در محلurlثبت شده است.
اگر برای یک Parameter مقدار Default/Constant ذخیره شده باشد، Caller مجبور نیست آن Parameter را در هر Call دوباره ارسال کند. اگر Caller برای همان Parameter یک مقدار مؤثر ارسال کند، مقدار ارسالشده استفاده میشود؛ و فقط در صورت نبود مقدار مؤثر، Default ذخیرهشده جایگزین میشود.
| مقدار ارسالی Caller | Default ذخیرهشده | مقدار نهایی |
|---|---|---|
| ارسال نشده | fa | fa |
en | fa | en |
این رفتار با Static Backend Parameter در Service Bus یکی نیست؛ در Service Bus مقدار Static برای اجرای Backend قفل میشود.