हो मैंने देखा है कि चहचहाना एपीआई उपयोग जैसे कुछ एपीआई सब कुछ करने के लिए तरीके मिलता है, तो पैरामीटर इसचाहिए API कॉल GET या POST
http://api.twitter.com/1/statuses/user_timeline.json?screen_name=screenname
तरह यूआरएल में पारित कर रहे हैं मैं कुछ सवाल हैं और टिप्पणी की सराहना करेंगे या सुधार:
मैंने हमेशा सोचा कि जीईटी का उपयोग करना एक अच्छा विचार नहीं है और यह POST का उपयोग करना बेहतर है।
एपीआई I कोडिंग के लिए एक कुंजी की आवश्यकता है, और मुझे नहीं लगता कि यह यूआरएल में भेजना अच्छा विचार है। तो क्या POST पैरामीटर और यूआरएल पैरामीटर दोनों मिश्रण करना संभव है?
- एक अन्य समस्या
मैंने सुना है कि यूआरएल एक अधिकतम लंबाई है, इसलिए मुझे लगता है कि इस तरह से बाहर निकलना होगा, या वहाँ एक समाधान
समस्या सिर्फ मैं पोस्ट के साथ दिखाई दे रही है (और जो मुझे लगता है कि ट्विटर जैसी साइट जीईटी के साथ क्यों गई) यह है कि अनुरोध सीधे ब्राउज़र से नहीं बनाया जा सकता है। अगर मैं इस पर गलत हूं तो मुझे सही करें।
अपडेट: जो कोई मुझे इस मंथन की मदद कर रहा है के लिए धन्यवाद। मेरे पास कुछ टिप्पणियों को स्पष्ट करने के लिए कुछ अपडेट हैं।
जब मैं URL में कुंजी भेजने के लिए इच्छुक नहीं के बारे में बात कर रहा था, कि मैं क्या मतलब है कि मैं नहीं है कुंजी, बुकमार्क चाहते हैं, तो एक उपयोगकर्ता बुकमार्क करने के लिए एक फोन नहीं थे कि मैं डॉन है ' टी कुंजी बिल्कुल खुलासा नहीं चाहता है। तो मुझे जवाब से लगता है, मैं इसे हेडर फ़ील्ड में भेज सकता हूं? कोई अन्य विकल्प?
मैं
POST requests can't be made from the url
http://example.com/api/op.json?param=value
में के रूप में स्पष्ट करने के लिए जब मैंने कहा कि पोस्ट अनुरोधcan't be made from the browser
, मैंने कहा जाना चाहिए था कि, चाहते हैं। क्षमा करें, मैं misspoke, स्पष्ट होना चाहिए था।पुन यह RESTful या नहीं है कि क्या: मैं एक MVC रूपरेखा है कि क्रिया और यूआरएल का पता लगाने का ख्याल रखा के साथ पहले RESTful किया है
example.com/entry/1
, याexample.com/entry/
और http क्रियाओं की तरह लग रही समाप्त हो गया क्या नियंत्रित संचालन किया जा रहा है कर रहे हैं प्रदर्शन (निर्माण, अद्यतन, हटाएं, सूची)। मैंने सोचा, व्यावहारिक रूप से, कि RESTful क्रूड-जैसे डेटा के लिए सबसे उपयोगी था (प्रवेश बनाएं, प्रवेश प्राप्त करें, प्रवेश दर्ज करें, प्रविष्टि हटाएं, सभी प्रविष्टियां दिखाएं)। तो अगर मुझे क्रूड की जरूरत नहीं है, तो क्या मुझे आरईएसटी चाहिए? मेरा सवाल: यदि कोई कॉल केवल इनपुट देता है और आउटपुट देता है, तो क्या इस एपीआई को रीस्टफुल करने की आवश्यकता है? यूआरएल रीस्टफुल नहीं दिखता है, तो क्या कार्यान्वयन में कुछ और है जो इसे रीस्टफुल कर सकता है?यूआरएल आकार के अनुसार, आपने
but if you're seriously concerned about it you probably should rethink your API. GET requests shouldn't be sending that much data to the server.
पर टिप्पणी की तो मेरे पास यह उदाहरण है: उपयोगकर्ता एक बड़ी फाइल भेजना चाहता है। सर्वर पर, मैं डेटाबेस में फ़ाइल दर्ज नहीं करूँगा या इसे सहेज नहीं सकता (इसलिए मानकों के अनुसार मैं डेटा पोस्ट नहीं कर रहा हूं), लेकिन शायद मैं हूं (इन्हें जल्दी से उदाहरणों के बारे में सोचा जाता है, इसलिए कृपया उन्हें कम करें) :- (क) फ़ाइल के मेटाडाटा पढ़ने और यह लौटने (कि GET या POST होना चाहिए), या
- (ख) मैं मेटाडाटा पढ़ रहा हूँ और फ़ाइल पर metada को संशोधित करने और लौटने संशोधित फ़ाइल (वह प्राप्त या पोस्ट होना चाहिए)।
- तो यह एक उदाहरण है कि मुझे बड़े डेटा भेजने की आवश्यकता क्यों हो सकती है। सवाल यह है कि (ए) और (बी) जीईटी या पोस्ट ऑपरेशंस माना जाता है? और यही कारण है कि मैं यूआरएल अधिकतम लंबाई
क्या आप सर्वर से कुछ डेटा प्राप्त कर रहे हैं? 'GET' का प्रयोग करें। क्या आप सर्वर पर डेटा भेज रहे हैं (या "POSTING") डेटा? 'POST' का प्रयोग करें। –
आप हेडर फ़ील्ड में कुंजी भी पास कर सकते हैं। – abraham
@Anon आपका तर्क तब टूट जाएगा जब दोनों या कोई भी नहीं किया जाता है। –