بعد از این درس دقیقاً چه بلدی؟
- موضوع «422» را با زبان ساده برای فرد دیگری توضیح میدهی.
- مثال همین درس را خطبهخط میخوانی و خروجی آن را پیشبینی میکنی.
- کد را تغییر میدهی، نتیجه یا ساختار آن را بررسی میکنی و خطا را مرحلهای اصلاح میکنی.
فرم برگشتی اداره
فقط گفتن «اشتباه است» کافی نیست؛ باید خانه خطادار و روش اصلاح مشخص باشد و شماره پیگیری ثابت بماند.
API باید خطا را قابل پردازش برگرداند: کد پایدار، پیام انسانی و جزئیات فیلد. فهرست بزرگ نیز با Pagination محدود میشود.
چرا مهم است؟ این مفهوم یکی از آجرهای مسیر حرفهای PHP است. فعلاً لازم نیست همه جزئیات را حفظ کنی؛ باید دلیل استفاده و اثر هر خط را بفهمی.
اولین تمرین تو: API علاوه بر پیام فارسی، کد EMAIL_TAKEN و مسیر فیلد email را برمیگرداند.
اول بفهم، بعد کد بنویس
422
ورودی از نظر نحو قابل خواندن اما از نظر قانون نامعتبر است.
Error code
شناسه ماشینی و پایدار نوع خطاست.
Cursor pagination
ادامه فهرست را با نشانگر پایدارتر از offset فراهم میکند.
خطای ایمیل تکراری
API علاوه بر پیام فارسی، کد EMAIL_TAKEN و مسیر فیلد email را برمیگرداند.
قطعهها را به ترتیب درست بچین
روی هر قطعه بزن تا وارد پاسخ شود؛ برای برگرداندن دوباره روی آن بزن. با دکمههای جابهجایی هم میتوانی بدون کشیدن و رهاکردن ترتیب را اصلاح کنی.
کد را کامل کن و ساختار آن را بررسی کن
این درس وارد قابلیتهای سروری یا حرفهای شده است. برای امنیت سایت، کد دلخواه روی سرور اجرا نمیشود؛ بررسیگر، وجود اجزای ضروری و منطق مورد انتظار را کنترل میکند و راهنمای اصلاح میدهد.
کد را کامل کن و «بررسی ساختار» را بزن.
این مثال خطبهخط چه میگوید؟
فعلاً حفظ نکن؛ هر خط را به یک جمله ساده تبدیل کن.
- 1
<?phpاز اینجا مفسر PHP شروع به خواندن کد میکند.
- 2
http_response_code(422);این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 3
echo json_encode([نتیجه این عبارت به خروجی پاسخ فرستاده میشود.
- 4
"error" => [این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 5
"code" => "VALIDATION_FAILED",این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 6
"message" => "اطلاعات نیاز به اصلاح دارد",این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 7
"fields" => ["email" => ["این ایمیل قبلاً ثبت شده است"]],این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 8
],این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 9
], JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR);این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
راهنماییها مرحلهای هستند؛ اول خودت پیام خطا را بخوان.
صفحهبندی limit/cursor و لینک next را برای فهرست سفارش طراحی کن.
از ساده به چالشی، بدون پرش
یکی از مقدارهای مثال را عوض کن، خروجی را روی کاغذ حدس بزن و سپس بررسی کن.
صفحهبندی limit/cursor و لینک next را برای فهرست سفارش طراحی کن.
سناریوی «خطای ایمیل تکراری» را با نامهای واضحتر و یک حالت تازه گسترش بده.
این سه اشتباه را انجام نده
پیام خطای بدون کد پایدار
پذیرفتن limit بسیار بزرگ
افشای Stack Trace در JSON
5 پرسش کوتاه؛ مطمئن شو واقعاً یاد گرفتهای
برای هر پرسش یک پاسخ انتخاب کن. بعد از هر انتخاب، دلیل پاسخ را همانجا میبینی.
422 معمولاً برای چیست؟
کدام توضیح، «422» را دقیقتر بیان میکند؟
بهترین قدم بعد از خواندن مثال این درس چیست؟
کدام روش نشان میدهد این درس را واقعاً فهمیدهای؟
کدام رفتار احتمال خطا را در همین موضوع بیشتر میکند؟
درس را فقط وقتی تمام کن که کد را تغییر دادهای
دیدن آموزش کافی نیست؛ یک مقدار را تغییر بده، خروجی را پیشبینی کن و بعد اجرا بزن.