یکی از اشتباهات رایج موقع ساخت API اینه که برای تقریباً همهچیز 200 برگردونیم.
مثلاً کاربر محصولی رو درخواست کرده که اصلاً وجود نداره:
HTTP/1.1 200 OK
{
"success": false,
"message": "Product not found"
}
از نظر برنامهنویس شاید مشکلی نباشه؛ ولی HTTP برای همین سناریوها Status Code داره.
مثلاً:
404 Not Found
وقتی Resource وجود نداره.
یا:
401 Unauthorized
وقتی احراز هویت انجام نشده.
و:
403 Forbidden
وقتی کاربر شناسایی شده ولی اجازه انجام اون عملیات رو نداره.
این تفاوت فقط برای «قشنگتر بودن API» نیست.
حالا Client، Cache، Monitoring، Proxy و حتی ابزارهای Debugging میتونن بر اساس Status Code رفتار متفاوتی داشته باشن.
پس API خوب فقط JSON درست تحویل نمیده؛
قرارداد HTTP رو هم درست اجرا میکنه.
@CodeVerse_dev