ایک resource URI کو کسی شے تک اسم پر مبنی راستے کی طرح پڑھا جانا چاہیے، نہ کہ کسی عمل کی طرح۔ HTTP method پہلے ہی فعل (verb) فراہم کر دیتا ہے، اس لیے URI کو صرف resource کی واضح اور مستقل شناخت کرنے کی ضرورت ہے۔
ایک resource URI کو کسی شے تک اسم پر مبنی راستے کی طرح پڑھا جانا چاہیے، نہ کہ کسی عمل کی طرح۔ HTTP method پہلے ہی فعل (verb) فراہم کر دیتا ہے، اس لیے URI کو صرف resource کی واضح اور مستقل شناخت کرنے کی ضرورت ہے۔
GET /users/42 — نہ کہ GET /getUser?id=42۔ method (GET) ہی فعل ہے۔/users collection ہے؛ /users/42 ایک رکن ہے۔ ہر جگہ جمع رکھنا اسے قابلِ پیش گوئی رکھتا ہے۔/users/42/orders = "user 42 سے تعلق رکھنے والے orders"۔kebab-case، lowercase استعمال کریں۔ /blog-posts، نہ کہ /blogPosts یا /Blog_Posts۔/users?role=admin&sort=-created_at۔/users collection of users
/users/42 a single user
/users/42/orders orders belonging to user 42 (sub-collection)
/users/42/orders/1001 a specific order of that user
/orders/1001 same order, addressable at top level too
GET /users/42/orders?status=shipped&sort=-created_at&page=2 HTTP/1.1
Accept: application/json
ایک یا دو سطحوں سے زیادہ گہری nesting سے بچیں — /users/42/orders/1001/items/5/reviews نازک بن جاتا ہے۔ جب کسی order کا اپنا ID ہو، تو /orders/1001 کو ترجیح دیں۔ ان اعمال کے لیے جو CRUD میں فٹ نہیں آتے (مثلاً "email بھیجنا")، ایک controller طرز کا sub-resource قابلِ قبول ہے: POST /users/42/verify-email۔
مستقل نام گذاری ہی وہ چیز ہے جو کسی API کو بدیہی محسوس کراتی ہے — ایک ڈویلپر جس نے /users اور /users/42 دیکھا ہو وہ بغیر docs پڑھے /products اور /products/99 کا درست اندازہ لگا سکتا ہے۔ انٹرویو لینے والے اسے یہ ناپنے کے لیے استعمال کرتے ہیں کہ آیا آپ RPC calls (/doThisThing) کے بجائے resources میں سوچتے ہیں (REST ذہنیت)۔ سب سے عام anti-patterns — path میں افعال، غیر مستقل جمع سازی، اور گہرائی سے nested URLs — سبھی کسی API کو سیکھنے اور برقرار رکھنے میں مشکل تر بناتے ہیں، اور یہ ایک ایسے ڈویلپر کا اشارہ دیتے ہیں جس نے REST کی uniform-interface پابندی کو اندر تک نہیں اتارا۔ اچھا URI ڈیزائن مسائل کو الگ بھی رکھتا ہے: شناخت path میں، filtering اور pagination query string میں، جو caching اور routing کو صاف رکھتا ہے۔
تفصیلی جوابات کے ساتھ IT انٹرویو سوالات کی ایک لائبریری — جونیئر سے سینئر تک۔
عطیہ دیں