2009-10-27 23 views
45

मैं अपनी खुद की PHP लाइब्रेरी विकसित कर रहा हूं और मैं अपने एपीआई से रीस्टफुल वेब-सर्विसेज कॉल करना चाहता हूं। क्या यह PHP में किया जा सकता है और यदि ऐसा है तो ऐसा करने में मूल बातें क्या हैं?क्या आप PHP में आरईएसटी का उपयोग कर सकते हैं? यदि हां, तो कैसे?

+6

+1: डाउनवोट ऑफ़सेट करना, यह एक उचित (अगर अस्पष्ट) प्रश्न है। –

+1

मुझे लगता है कि वह पुट को संभालने और अनुरोध विधियों को हटाने के बारे में पूछ रहा है, इसलिए मुझे नहीं लगता कि यह एक अमान्य प्रश्न है। – bart

+0

प्रश्न आपको स्टिकर जारी रखें; आप यहां साबित करने की क्या कोशिश कर रहे हैं? इसमें 43,000 से अधिक विचार हैं और PHP + REST के लिए पांचवां Google परिणाम है। इस साइट के लिए क्या खड़ा है उसे मारना बंद करें - प्रश्नोत्तरी प्रश्न। –

उत्तर

38

चूंकि आरईएसटी क्लाइंट-सर्वर आर्किटेक्चर के डिजाइन के लिए HTTP प्रोटोकॉल के समान तरीकों का उपयोग है और PHP HTTP प्रोटोकॉल अनुरोधों को संभालने के लिए पहले से ही अच्छा है जैसे कि जीईटी और पोस्ट। PHP विशेष रूप से विकासशील आरईएसटी सेवाओं को विकसित करने के लिए उपयुक्त है।

याद रखें REST एक ही http पैटर्न का अनुप्रयोग है जो पहले से मौजूद है।

इसलिए यदि आप वर्तमान ऐसा ही कुछ करता है एक आवेदन पत्र है:

  1. HTML फ़ॉर्म
  2. पीएचपी प्रक्रिया
  3. किसी तालिका में
  4. एचटीएमएल आउटपुट

तो यह आप आराम करने के लिए होगा की आवश्यकता है:

  1. पैरामीटर स्वीकार करें वेब से एस है। यह आसान है क्योंकि आप पैरामीटर प्राप्त या प्राप्त करने के रूप में प्राप्त करेंगे ... इसलिए यह मूल रूप से वही है।
  2. पीएचपी प्रक्रिया या तो JSON या एक्सएमएल में
  3. आउटपुट। और वह यह है!

    बहुत आसान है।

अब मुश्किल हिस्सा है कि आप अपने एपीआई (फ़ंक्शंस और यूआरएल) को प्रोग्रामर अनुकूल बनाने के लिए तैयार करेंगे।

उस मामले में मेरा सुझाव है कि आप flickr API देखें क्योंकि एक उदाहरण बहुत डेवलपर अनुकूल अनुमान लगाने में आसान है और इसमें अच्छी प्रलेखन है। How to Design a Good API & Why it Matters (Joshua Bloch)

अंत में एक RESTful API भी PUT को लागू करने और हटाने http प्रोटोकॉल के तरीकों जब यह भावना

बनाता है उदाहरण के लिए यदि आप था चाहिए:

एपीआई के बारे में अधिक जानकारी के लिए इस प्रस्तुति को देखने के आपके एपीआई में एक डिलीट एक्शन, ने कहा कि सेवा को http प्रोटोकॉल से डिलीट विधि प्राप्त करनी चाहिए। एक पोस्ट अनुरोध के हिस्से के रूप में एक कार्य पैरामीटर भेजने की अधिक आम बात के बजाय।

संपादित करें: बदला के साथ "" Php डिफ़ॉल्ट रूप से बाकी है "जब से बाकी क्लाइंट-सर्वर आर्किटेक्चर और PHP के डिजाइन के लिए HTTP प्रोटोकॉल के एक ही तरीके के आवेदन पहले से ही इतना अच्छा HTTP प्रोटोकॉल अनुरोधों को हैंडल करने के लिए है जैसे कि जीईटी और पोस्ट। PHP विशेष रूप से विकासशील आरईएसटी सेवाओं को विकसित करने के लिए उपयुक्त है। "

और अंतिम नोट भी जोड़ा कि आपको एपॉपीएट पुट या डिलीट विधियों को लागू करना चाहिए जब उस क्रिया को आपके एपीआई के लिए समझ में आता है।

+2

-1: क्षमा करें, डिफ़ॉल्ट रूप से कोई भाषा आरईएसटी नहीं है। उदाहरण के लिए आरईएसटी में एक POST अनुरोध GET से बहुत अलग है, और आपको DELETE और PUT का समर्थन करने की आवश्यकता है। –

+0

@ जिम फेरन्स - क्यों हटाया जाना चाहिए? –

+0

@elviejo - यदि आप स्टैक ओवरफ्लो के लिए यूआरएल देखते हैं तो आपको एक आरईएसटी यूआरएल दिखाई देगा। यह कुछ ऐसा नहीं है जो PHP डिफ़ॉल्ट रूप से पार्सिंग में करता है, क्योंकि कोई प्रश्न चिह्न नहीं है। –

17

आप इस लेख और अनुवर्ती को देखने के लिए चाहते हो सकता है: 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/

+1

लिंक टूटा हुआ है। – kta

+0

@ kaziTanvirAhsan - धन्यवाद, एक बेहतर लिंक में डाल –

4

the original source of the term REST के लिए वापस जाओ, और यह सुनिश्चित करें कि आप समझते हैं कि क्या मतलब होने के लिए चोट नहीं कर सकते।

4

यदि आप चीजों के ग्राहक पक्ष के बारे में सोच रहे हैं, तो मै मैट सुकोव्स्की के पेस्ट की जांच करने का सुझाव दूंगा।

आप GitHub पर रिपोजिटरी मिलेगा: https://github.com/educoder/pest

इसके अलावा इस धागे की जाँच: PHP REST Clients

अद्यतन 2013/12/13:
यह बहुत ज्यादा एक जीवित ओपन सोर्स प्रोजेक्ट, मैट है सुकोव्स्की ने इसे इस गर्मी में नए देखभाल करने वालों को सौंप दिया क्योंकि उन्हें नहीं लगता था कि वह पर्याप्त समय बचा सकता है, और तब से बहुत सारे और बहुत से काम चल रहे हैं। तो PHP में आराम करने के लिए कीट पहले से कहीं बेहतर है :)

5

मैंने एक कक्षा विकसित की जो 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 

(ध्यान दें कि यह कोई फर्क नहीं पड़ता कि क्या पैरामीटर आदेश क्वेरी स्ट्रिंग में प्रदान की जाती हैं इसके अलावा, साथ ही परम कुंजी नाम विधि का नाम केस-असंवेदनशील है।)

+0

यह वर्ग HTTP प्रोटोकॉल के बीच अंतर क्यों नहीं करता है? – Isius

+0

मुझे उस ऐप में इसकी आवश्यकता नहीं थी जिसे मैंने मूल रूप से उपयोग किया था। इसे फोर्क करने के लिए स्वतंत्र महसूस करें और उस पर सुधार करें। –

संबंधित मुद्दे

 संबंधित मुद्दे