मैं अपनी खुद की PHP लाइब्रेरी विकसित कर रहा हूं और मैं अपने एपीआई से रीस्टफुल वेब-सर्विसेज कॉल करना चाहता हूं। क्या यह PHP में किया जा सकता है और यदि ऐसा है तो ऐसा करने में मूल बातें क्या हैं?क्या आप PHP में आरईएसटी का उपयोग कर सकते हैं? यदि हां, तो कैसे?
उत्तर
चूंकि आरईएसटी क्लाइंट-सर्वर आर्किटेक्चर के डिजाइन के लिए HTTP प्रोटोकॉल के समान तरीकों का उपयोग है और PHP HTTP प्रोटोकॉल अनुरोधों को संभालने के लिए पहले से ही अच्छा है जैसे कि जीईटी और पोस्ट। PHP विशेष रूप से विकासशील आरईएसटी सेवाओं को विकसित करने के लिए उपयुक्त है।
याद रखें REST एक ही http पैटर्न का अनुप्रयोग है जो पहले से मौजूद है।
इसलिए यदि आप वर्तमान ऐसा ही कुछ करता है एक आवेदन पत्र है:
- HTML फ़ॉर्म
- पीएचपी प्रक्रिया किसी तालिका में
- एचटीएमएल आउटपुट
तो यह आप आराम करने के लिए होगा की आवश्यकता है:
- पैरामीटर स्वीकार करें वेब से एस है। यह आसान है क्योंकि आप पैरामीटर प्राप्त या प्राप्त करने के रूप में प्राप्त करेंगे ... इसलिए यह मूल रूप से वही है।
- पीएचपी प्रक्रिया या तो JSON या एक्सएमएल में
आउटपुट। और वह यह है!
बहुत आसान है।
अब मुश्किल हिस्सा है कि आप अपने एपीआई (फ़ंक्शंस और यूआरएल) को प्रोग्रामर अनुकूल बनाने के लिए तैयार करेंगे।
उस मामले में मेरा सुझाव है कि आप flickr API देखें क्योंकि एक उदाहरण बहुत डेवलपर अनुकूल अनुमान लगाने में आसान है और इसमें अच्छी प्रलेखन है। How to Design a Good API & Why it Matters (Joshua Bloch)
अंत में एक RESTful API भी PUT को लागू करने और हटाने http प्रोटोकॉल के तरीकों जब यह भावना
बनाता है उदाहरण के लिए यदि आप था चाहिए:
एपीआई के बारे में अधिक जानकारी के लिए इस प्रस्तुति को देखने के आपके एपीआई में एक डिलीट एक्शन, ने कहा कि सेवा को http प्रोटोकॉल से डिलीट विधि प्राप्त करनी चाहिए। एक पोस्ट अनुरोध के हिस्से के रूप में एक कार्य पैरामीटर भेजने की अधिक आम बात के बजाय।
संपादित करें: बदला के साथ "" Php डिफ़ॉल्ट रूप से बाकी है "जब से बाकी क्लाइंट-सर्वर आर्किटेक्चर और PHP के डिजाइन के लिए HTTP प्रोटोकॉल के एक ही तरीके के आवेदन पहले से ही इतना अच्छा HTTP प्रोटोकॉल अनुरोधों को हैंडल करने के लिए है जैसे कि जीईटी और पोस्ट। PHP विशेष रूप से विकासशील आरईएसटी सेवाओं को विकसित करने के लिए उपयुक्त है। "
और अंतिम नोट भी जोड़ा कि आपको एपॉपीएट पुट या डिलीट विधियों को लागू करना चाहिए जब उस क्रिया को आपके एपीआई के लिए समझ में आता है।
-1: क्षमा करें, डिफ़ॉल्ट रूप से कोई भाषा आरईएसटी नहीं है। उदाहरण के लिए आरईएसटी में एक POST अनुरोध GET से बहुत अलग है, और आपको DELETE और PUT का समर्थन करने की आवश्यकता है। –
@ जिम फेरन्स - क्यों हटाया जाना चाहिए? –
@elviejo - यदि आप स्टैक ओवरफ्लो के लिए यूआरएल देखते हैं तो आपको एक आरईएसटी यूआरएल दिखाई देगा। यह कुछ ऐसा नहीं है जो PHP डिफ़ॉल्ट रूप से पार्सिंग में करता है, क्योंकि कोई प्रश्न चिह्न नहीं है। –
आप इस लेख और अनुवर्ती को देखने के लिए चाहते हो सकता है: http://www.gen-x-design.com/archives/create-a-rest-api-with-php/
आपका प्रश्न बहुत ओपन एंडेड है, इसलिए इस ट्यूटोरियल सबसे अच्छा प्रारंभिक बिंदु हो सकता है।
ऊपर दिया गया लिंक नहीं रह गया है तो काम कर रहा है इस ट्यूटोरियल की जाँच:
http://net.tutsplus.com/tutorials/other/a-beginners-introduction-to-http-and-rest/
लिंक टूटा हुआ है। – kta
@ kaziTanvirAhsan - धन्यवाद, एक बेहतर लिंक में डाल –
the original source of the term REST के लिए वापस जाओ, और यह सुनिश्चित करें कि आप समझते हैं कि क्या मतलब होने के लिए चोट नहीं कर सकते।
यदि आप चीजों के ग्राहक पक्ष के बारे में सोच रहे हैं, तो मै मैट सुकोव्स्की के पेस्ट की जांच करने का सुझाव दूंगा।
आप GitHub पर रिपोजिटरी मिलेगा: https://github.com/educoder/pest
इसके अलावा इस धागे की जाँच: PHP REST Clients
अद्यतन 2013/12/13:
यह बहुत ज्यादा एक जीवित ओपन सोर्स प्रोजेक्ट, मैट है सुकोव्स्की ने इसे इस गर्मी में नए देखभाल करने वालों को सौंप दिया क्योंकि उन्हें नहीं लगता था कि वह पर्याप्त समय बचा सकता है, और तब से बहुत सारे और बहुत से काम चल रहे हैं। तो PHP में आराम करने के लिए कीट पहले से कहीं बेहतर है :)
मैंने एक कक्षा विकसित की जो PHP मूल सोपसेवर क्लास 'आरईएसटी समकक्ष है।
आप बस RestServer.php फ़ाइल शामिल करते हैं और फिर इसे निम्नानुसार उपयोग करते हैं।
class Hello
{
public static function sayHello($name)
{
return "Hello, " . $name;
}
}
$rest = new RestServer(Hello);
$rest->handle();
तो फिर तुम इस तरह कॉल कर सकते हैं:।
http://myserver.com/path/to/api?method=sayHello&name=World
(ध्यान दें कि यह कोई फर्क नहीं पड़ता कि क्या पैरामीटर आदेश क्वेरी स्ट्रिंग में प्रदान की जाती हैं इसके अलावा, साथ ही परम कुंजी नाम विधि का नाम केस-असंवेदनशील है।)
यह वर्ग HTTP प्रोटोकॉल के बीच अंतर क्यों नहीं करता है? – Isius
मुझे उस ऐप में इसकी आवश्यकता नहीं थी जिसे मैंने मूल रूप से उपयोग किया था। इसे फोर्क करने के लिए स्वतंत्र महसूस करें और उस पर सुधार करें। –
- 1. क्या आप canvas.getContext ('3d') का उपयोग कर सकते हैं? यदि हां, तो कैसे?
- 2. क्या आप बिज़टॉक का उपयोग कर रहे हैं? यदि हां, तो आप इसका उपयोग कैसे कर रहे हैं?
- 3. क्या आप Backbone.js संग्रह पर विशेषताओं को सेट कर सकते हैं? यदि हां, तो कैसे?
- 4. क्या आप गिट में एक समग्र परिवर्तन देख सकते हैं? यदि हां, तो कैसे?
- 5. यदि आप अनावश्यक हैं तो क्या आप निजी एक्सेस संशोधक का उपयोग कर सकते हैं?
- 6. क्या हम डेटासेट को वेब सेवा विधि में पास कर सकते हैं? यदि हां, तो कैसे?
- 7. यदि आप रनटाइम तक अज्ञात हैं तो क्या आप सी # में जेनेरिक विधियों का उपयोग कर सकते हैं?
- 8. क्या आप कस्टम टेम्पलेट टैग कर सकते हैं जो एक क्वेरीसेट देता है? यदि हां, तो कैसे? - Django
- 9. पायथन में साइट-पैकेज क्या हैं और यदि आप रूट नहीं हैं तो आप उन्हें इंस्टॉल/उपयोग कर सकते हैं?
- 10. यदि आप संदर्भ द्वारा अपवाद पकड़ते हैं, तो क्या आप इसे संशोधित कर सकते हैं और पुनर्स्थापित कर सकते हैं?
- 11. प्रमाणीकरण - क्या आप कुकीज़/सत्र का उपयोग कर सकते हैं?
- 12. योजना और रैकेट अलग हैं? यदि हां, तो कैसे?
- 13. क्या आप अभी एमडीए (मॉडल संचालित वास्तुकला) कर रहे हैं? यदि हां, तो आप किस उपकरण का उपयोग करते हैं, और यह कैसे काम कर रहा है?
- 14. क्या आप रूबी में अर्धविराम का उपयोग कर सकते हैं?
- 15. जब आप व्यूस्टेट का उपयोग नहीं कर सकते तो आप क्या करते हैं?
- 16. आप विम में पायथन का उपयोग कैसे कर सकते हैं?
- 17. पायथन में, क्या आपके पास ट्रिपल कोट्स के भीतर चर हो सकते हैं? यदि हां, तो कैसे?
- 18. क्या आप एक PHP एक्सटेंशन बनाने के लिए हिपहॉप PHP का उपयोग कर सकते हैं?
- 19. क्या आप पहले विकास समाधान तैयार/स्केच/ड्रा करते हैं और फिर इसे विकसित करते हैं? यदि हां, तो कैसे?
- 20. सी में आप क्या नहीं कर सकते हैं जिसे आप उद्देश्य-सी में कर सकते हैं?
- 21. क्या आप इसे समझने में मेरी मदद कर सकते हैं? "सामान्य आरईएसटी गलतियों: सत्र अप्रासंगिक हैं"
- 22. जब आप जावा का उपयोग कर सकते हैं तो ज्योथन का उपयोग क्यों करें?
- 23. क्या मैं एक PHP फ़ंक्शन के अंदर जावास्क्रिप्ट अलर्ट जोड़ सकता हूं? यदि हां, तो कैसे?
- 24. क्या मैं एंड्रॉइड विकास में javax.script का उपयोग कर सकता हूं और यदि हां कैसे?
- 25. आप PHP में एक आरईएसटी एपीआई कैसे बनाते हैं?
- 26. क्या जावा ऐप सर्वर धागे को नष्ट करने में सक्षम हैं? यदि हां, तो कैसे?
- 27. आप आईएमएपी का उपयोग कर मेल कैसे भेज सकते हैं?
- 28. क्या आप कक्षा में प्रारंभिक सूची में एक लैम्ब्डा का उपयोग कर सकते हैं?
- 29. क्या आप PHP में एक MySQL परिणाम सेट का पुन: उपयोग कर सकते हैं?
- 30. क्या आप PHP में स्थिर स्थिरांक का उपयोग कर सकते हैं?
+1: डाउनवोट ऑफ़सेट करना, यह एक उचित (अगर अस्पष्ट) प्रश्न है। –
मुझे लगता है कि वह पुट को संभालने और अनुरोध विधियों को हटाने के बारे में पूछ रहा है, इसलिए मुझे नहीं लगता कि यह एक अमान्य प्रश्न है। – bart
प्रश्न आपको स्टिकर जारी रखें; आप यहां साबित करने की क्या कोशिश कर रहे हैं? इसमें 43,000 से अधिक विचार हैं और PHP + REST के लिए पांचवां Google परिणाम है। इस साइट के लिए क्या खड़ा है उसे मारना बंद करें - प्रश्नोत्तरी प्रश्न। –