मैं एक वेब ऐप डिजाइन कर रहा था और फिर यह सोचने के लिए रुक गया कि मेरी एपीआई को एक रैस्टफुल वेब सेवा के रूप में कैसे डिजाइन किया जाना चाहिए। अभी के लिए, मेरे अधिकांश URI सामान्य हैं और विभिन्न वेब ऐप्स पर लागू हो सकते हैं:
GET /logout // destroys session and redirects to /
GET /login // gets the webpage that has the login form
POST /login // authenticates credentials against database and either redirects home with a new session or redirects back to /login
GET /register // gets the webpage that has the registration form
POST /register // records the entered information into database as a new /user/xxx
GET /user/xxx // gets and renders current user data in a profile view
POST /user/xxx // updates new information about user
मुझे लग रहा है कि मैं एसओ और गूगल पर घूमने के बाद यहां बहुत गलत कर रहा हूं।
के साथ शुरू /logout
, शायद जब से मैं वास्तव में GET
कुछ भी नहीं है - यह सत्र को नष्ट करने, और फिर पुनर्निर्देशित POST
करने के अनुरोध के लिए अधिक उपयुक्त हो सकता है । और कार्यकाल बना रहना चाहिए ?/logout
GET
/logout
क्या बारे में /login
और /register
। मैं बदल सकता /register
था, /registration
लेकिन यह मेरी सेवा मौलिक रूप से कैसे काम करता है - अगर इसमें गहन मुद्दे हैं, तो यह बदल नहीं सकता ।
मैं अब नोटिस करता हूं कि मैं एक /user
संसाधन को उजागर नहीं करता हूं । शायद यह किसी भी तरह से उपयोग किया जा सकता है। उदाहरण के लिए, उपयोगकर्ता को लें myUser
:
foo.com/user/myUser
या
foo.com/user
अंतिम उपयोगकर्ता को URI में अतिरिक्त वर्बोसिटी की आवश्यकता नहीं है। हालाँकि, कौन सा अधिक नेत्रहीन है?
मैंने इस REST व्यवसाय के बारे में SO पर कुछ अन्य प्रश्नों पर ध्यान दिया है, लेकिन यदि संभव हो तो मैंने यहाँ जो कुछ रखा है, उस पर कुछ मार्गदर्शन की सराहना करता हूँ।
धन्यवाद!
अपडेट करें:
मैं कुछ राय भी चाहूंगा:
/user/1
बनाम
/user/myUserName