ملی ای‌پی‌آی

وضعیت نظام وظیفه «بدون مشکل» یعنی چه؟

در استعلام نظام وظیفه، «بدون مشکل» یک وضعیت کلی است، نه نوع معافیت یا تاریخ پایان خدمت؛ مقدار منطقی برای ماشین است و توضیح متنی برای انسان.

«بدون مشکل» در استعلام نظام وظیفه یک وضعیت کلی است، نه یک حکم دربارهٔ نوع معافیت یا تاریخ پایان خدمت. اگر انتظار گزارش پرونده دارید، آن را در این پاسخ پیدا نمی‌کنید.

استعلام وضعیت نظام وظیفه دو چیز برمی‌گرداند: یک مقدار منطقی که می‌گوید وضعیت بدون مشکل است یا نه، و یک توضیح کوتاه متنی. ورودی‌اش فقط کد ملی است. این نوشته می‌گوید این دو خروجی در عمل یعنی چه و چه چیزهایی بیرون از آن‌اند.

با استعلام شخصی فرق دارد

کسی که برای خودش استعلام می‌گیرد معمولاً از مسیری می‌گذرد که کد ملی و کدی دیگر (کد سخا) می‌خواهد و جزئیات پرونده را نشان می‌دهد؛ منابع فارسی که این مسیرها را شرح می‌دهند نیز همین را می‌گویند. سرویس ما این مسیر نیست. ورودی‌اش فقط کد ملی است و خروجی‌اش خلاصه است. دلیل آن ساده است: کسب‌وکار معمولاً می‌خواهد بداند مانعی هست یا نه، نه اینکه پرونده را بخواند.

پس اگر کاربر شما می‌پرسد «چرا همان چیزی که در سامانهٔ خودم دیدم اینجا نیست؟»، پاسخ این است که دو چیز متفاوت‌اند. یکی پرونده است و دیگری خلاصهٔ وضعیت.

دو خروجی، دو کار

مقدار منطقی

برای تصمیم ماشین است. جریان کاری شما آن را می‌خواند و مسیر را انتخاب می‌کند: ادامه یا بررسی بیشتر.

توضیح متنی

برای انسان است. به کاربر یا اپراتور نشان داده می‌شود تا بداند چه شده. ما محتوای این متن را از پیش نمی‌دانیم و فهرست ثابتی از عبارت‌هایش نداریم؛ نباید در کد شما شرط روی کلمات توضیح باشد. شرط را روی مقدار منطقی بگذارید و متن را فقط نمایش دهید.

اشتباه رایج: نوشتن if (description.includes("...")). متن ممکن است عوض شود و کد شما بی‌صدا شکسته می‌شود.

«بدون مشکل» یعنی چه و چه نیست

مقدار «بدون مشکل» می‌گوید در این استعلام مانعی دیده نشد. نمی‌گوید:

  • فرد معاف است یا خدمت کرده یا مشمول است.
  • معافیتش دائم است یا موقت.
  • تاریخ پایان خدمت کی بوده.
  • او می‌تواند فلان اقدام (مثلاً خروج از کشور) را انجام دهد.

مورد آخر مهم است. بعضی تیم‌ها از «بدون مشکل» نتیجه می‌گیرند «پس مجاز است». مجاز بودن بر اساس شرایط خود آن اقدام تعیین می‌شود و ما درباره‌اش حرفی نمی‌زنیم.

چه کسانی را استعلام نکنید

در فرم سرویس نوشته‌ایم که این استعلام فقط برای آقایان معنا دارد و برای بانوان پاسخ همیشه «بدون مشکل» است. نتیجه: پاسخ «بدون مشکل» برای یک بانو اطلاعاتی نمی‌دهد و فراخوانش هزینهٔ بی‌دلیل است.

هر پاسخ معتبر هزینه دارد، حتی «رکوردی نیست»، پس قبل از فراخوان خودتان فیلتر کنید. این فیلتر ساده است: فقط جایی که جریان کاری واقعاً به آن نیاز دارد. نمی‌توانیم به شما بگوییم چه کسی را استعلام کنید، ولی می‌توانیم بگوییم کسی را که پاسخش بی‌اثر است استعلام نکنید. تعرفه را در صفحهٔ تعرفه ببینید.

وقتی پاسخ «مشکل دارد» است

به کاربر چه بگویید؟ سه اصل.

  1. متن توضیح را نشان بدهید، نه فقط «رد شد».
  2. راه اعتراض بگذارید. استعلام ممکن است با وضعیت واقعی هم‌زمان نباشد؛ داده‌ها عوض می‌شوند. کاربر باید بتواند مدرک نشان بدهد.
  3. رد خودکار نکنید، مگر اینکه کاملاً مطمئن باشید. در نوشتهٔ استعلام در استخدام دلیلش را آورده‌ایم.

نمونه فراخوان

bash curl -X POST 'https://example.com/api/v1/military-service/' \ -H 'Authorization: Bearer YOUR_KEY' \ -H 'Content-Type: application/json' \ -d '{"nationalCode":"0013542419"}'

کد ملی نمونه از مستندات API است؛ آن را با مقدار واقعی عوض کنید. کد ملی باید رقم کنترلی درست داشته باشد، وگرنه خطای ورودی نامعتبر می‌گیرید که هزینه ندارد.

آنچه این استعلام نمی‌کند

ورودی و خروجی را در صفحهٔ استعلام نظام وظیفه می‌بینید.

نوع معافیت، تاریخ پایان خدمت و جزئیات پرونده را نمی‌دهد. وضعیت اقامت یا مجوز سفر را هم نمی‌گوید. و چون داده هویتی حساس است، نتیجه را بیش از نیاز جریان کاری نگه ندارید و در لاگ ننویسید.

چند پرسش رایج

آیا می‌شود نتیجه را مدرک گرفت؟

خروجی ما یک پاسخ ماشینی است، نه گواهی. اگر فرایند شما مدرک می‌خواهد (مثلاً کارفرمایی که سند پایان خدمت را برای پرونده لازم دارد)، پاسخ API جای آن را نمی‌گیرد. می‌شود آن را به‌عنوان یک پیش‌بررسی ارزان‌تر از درخواست تصویر به کار برد، نه جایگزین قطعی.

اگر کاربر بگوید پاسخ غلط است؟

قاعده‌ای که پیشنهاد می‌کنیم: از او مدرک بخواهید و پرونده را به بررسی انسانی بدهید. به کاربر نگویید «سیستم اشتباه نمی‌کند». ما نمی‌دانیم داده مرجع چقدر تازه است، و شما هم نباید ادعایی بکنید که نمی‌توانید ثابتش کنید.

چقدر به‌روز است؟

سرویس گاهی پاسخ را از کش می‌دهد و در پاسخ فیلدهای source.cached و fetchedAt همین را می‌گویند. برای تصمیم حساس، زمان دریافت را بخوانید.

یک الگوی نمایش

به‌جای دو حالت «قبول» و «رد»، سه حالت بسازید: «بدون مشکل»، «نیاز به بررسی» و «استعلام ممکن نشد». حالت سوم برای خطاهای گذرا یا ورودی ناقص است. آن را با «مشکل دارد» یکی نکنید؛ کاربری که سرویس مرجع در دسترس نبوده، چیزی از دست نداده است.

چه چیزی را در رابط نشان ندهید

کد ملی کامل را در نتیجه تکرار نکنید. صفحه‌ای که نتیجهٔ نظام وظیفه را می‌گوید اگر کد ملی کامل هم داشته باشد، هر اسکرین‌شات و هر چاپ آن یک نشت کوچک است. نسخهٔ ماسک‌شده (چند رقم آخر) برای شناسایی کافی است.

همچنین، از واژه‌های قطعی در پیام‌ها بپرهیزید. «شما سرباز فراری هستید» ادعایی است که ما نه می‌توانیم ثابت کنیم نه سرویس چنین چیزی می‌گوید. فقط متن توضیح سرویس و یک راه اقدام بعدی را نشان بدهید.

تفاوت «مشمول نیست» با «مشکل ندارد»

این دو را در ذهن و در کد یکی نکنید. کسی که اصلاً مشمول نیست و کسی که مشمول بوده و وضعیتش مشخص است، هر دو ممکن است پاسخ «بدون مشکل» بگیرند، ولی دو وضعیت متفاوت‌اند. اگر جریان کاری شما فرق آن‌ها را لازم دارد، این سرویس تفکیک نمی‌کند و باید از کاربر مدرک بخواهید.

مثالی فرضی: پلتفرمی که آگهی‌های «پایان خدمت شرط» را فقط به متقاضی واجد شرایط نشان می‌دهد، با «بدون مشکل» او را واجد شرایط می‌گیرد. اما اگر در شرط آگهی «کارت پایان خدمت» نوشته شده و مدرک خاصی خواسته، استعلام جای آن مدرک را نمی‌گیرد.

در یک نگاه

مقدار منطقی را به ماشین بدهید و توضیح را به آدم؛ «بدون مشکل» را مجوز تلقی نکنید؛ و برای کسانی که پاسخ برایشان معنا ندارد استعلام نگیرید.

آخرین بازبینی: تیم تحریریه ملی ای‌پی‌آی

راهنماهای مرتبط

پرسش و تجربه کاربران

اگر این راهنما جوابتان را نداد، همین‌جا بپرسید. پرسش‌ها را تیمملی ای‌پی‌آی پاسخ می‌دهد و هر نظر پیش از انتشار بررسی می‌شود.

هنوز پرسشی ثبت نشده، اولین نفر باشید.