2009-07-20 3 views
7

मेरा प्रश्न कुछ बुनियादी webservices समझ बंद के लिए की जरूरत है और अधिक विशिष्ट रूप से php के साथ संयोजन के रूप मेंक्या php में webservice के निर्माण के लिए wsdl फ़ाइल होना जरूरी है?

मुझे पता है, अगर यह एक वेब सेवा बंद निर्माण के लिए एक WSDL फ़ाइल के लिए neccasary है चाहते हैं या कि सिर्फ कुछ है यह तीसरे पक्ष के लिए उपयोगी है जो webservice तक पहुंचना चाहते हैं? इसके अलावा, यह स्वचालित रूप से .NET वातावरण में जेनरेट किया गया है, लेकिन PHP के लिए यह थोड़ा और कठिन है।

मेरे विकल्प क्या हैं?

मैं जिस चीज के बाद हूं वह मेरे मोबाइल पर jm2ee एप्लिकेशन बनाना है जो समय-समय पर webservice को डेटा भेजता है। मैंने कहीं पढ़ा है कि जब कोई wsdl फ़ाइल नहीं है तो आपको तर्कों को आपूर्ति करना होगा। इसका क्या अर्थ है? और/या उस पर क्या प्रभाव हैं?

adv धन्यवाद, एक मशीन पठनीय (XML) प्रारूप में रिचर्ड

उत्तर

1

WSDL फ़ाइल दस्तावेजों क्या तरीके (और तरीकों के लिए args) एक वेब सेवा द्वारा की पेशकश की। यदि आपको पता है कि विधियों और तर्क क्या हैं, तो आपको डब्लूएसडीएल फ़ाइल की आवश्यकता नहीं है - हालांकि वेब सेवा सार्वजनिक इंटरफेस को 'अनुबंधित' बनाने के साधन के रूप में डब्ल्यूएसडीएल बहुत अच्छा है, यदि आप करेंगे।

मेरे सबसे अच्छे ज्ञान के लिए PHP लाइब्रेरी में आपके लिए WSDL फ़ाइल स्वचालित रूप से उत्पन्न करने के लिए फ़ंक्शन नहीं हैं।

+0

लेकिन यदि आप इसका उपयोग नहीं करते हैं, तो इससे कोई देरी नहीं होगी या कम कुशल नहीं होगा? – Richard

+0

ऐसा प्रतीत होता है कि आप wsdl के बारे में सही हैं, लेकिन विकल्प हैं। देखें http://www.brainbell.com/tutorials/php/Creating_A_Web_Service_With_PHP_5%27s_SOAP_Extension.htm –

+0

@ wichdl का उपयोग करके रिचर्ड * कम * कुशल होता है। ये फ़ाइलें काफी जल्दी हो सकती हैं, इसलिए पुनर्प्राप्ति और पार्सिंग समय गैर-तुच्छ हो जाता है। –

0

वेब सेवा समर्थन php5 में बनाया गया है, आपकी सबसे अच्छी प्रारंभिक जगह documentation है।

5

मुझे पता करना चाहते हैं, अगर यह neccasary है एक वेब सेवा

नहीं बंद निर्माण के लिए एक WSDL फ़ाइल के लिए, यह आवश्यक नहीं है (कम से कम, नहीं PHP में): यह दूसरों के लिए कैसे अपने वेब सेवा (जो तरीकों, वस्तुओं, ... इस्तेमाल किया जाना चाहिए) उपयोग करने के लिए पता करने में मदद करता है, लेकिन एक WS भले ही यह एक डबल्यूएसडीएल निर्यात नहीं करता

पीएचपी के लिए कहा जा सकता है, हाँ , जी के लिए थोड़ा मुश्किल है और एक डब्ल्यूएसडीएल (कई वर्ग उन्हें उत्पन्न नहीं करते हैं :-(); फिर भी, आप इसे किसी अन्य टूल के साथ जेनरेट कर सकते हैं (उदाहरण के लिए, WSDL फ़ाइलों को लिखने के लिए ग्रहण में उपकरण हैं)।

PEAR::Soap था जो PHP कोड से डब्लूएसडीएल उत्पन्न करने में सक्षम था (लेकिन आपको इसे सही करने के लिए कोड की कई पंक्तियां लिखनी थीं) - सोशल के साथ काम करने के लिए PHP 5 में एक कक्षा शामिल है, मैं चाहता हूं वैसे भी, इस का उपयोग करने की सलाह नहीं है।

अधिक जानकारियां के लिए, आप पर एक नजर है कर सकते हैं:

  • SoapServer; विशेष रूप से, अगर आप SoapServer::__construct के दस्तावेजीकरण पर नज़र डालें तो यह दोनों डबल्यूएसडीएल और गैर डबल्यूएसडीएल मोड
  • Zend_Soap
+0

ठीक है, मैंने जो कुछ कहा है उसे जोड़ने दो: शायद ज़ेंड_Soap के साथ, आप सभी के बाद डब्लूएसडीएल उत्पन्न कर सकते हैं; इसके बारे में http://framework.zend.com/manual/en/zend.soap.wsdl.html देखें: यह कहता है "Zend_Soap_Wsdl पैकेज में एक पार्सर और डब्लूएसडीएल दस्तावेज़ों का एक निर्माता शामिल है।" (मैंने कोशिश नहीं की है, हालांकि, और यह नहीं पता कि यह कितना अच्छा काम कर रहा है) –

+0

यह सीमित विकल्पों में से एक लग रहा था। ज़ेंड स्टूडियो एक सशुल्क सॉफ्टवेयर है। यह मेरा प्रश्न बताए जाने के कारणों में से एक था। – Richard

+0

मैंने ज़ेंड स्टूडियो के बारे में बात नहीं की: मैंने एक्लिप्स (जो मुफ़्त है, साथ ही एक्लिप्स पीडीटी) के बारे में बात की, और ज़ेंड फ्रेमवर्क (जो भी मुफ्त है) के बारे में बात की। ज़ेंड स्टूडियो एक आईडीई है जो पैसे खर्च करता है, हां; लेकिन ज़ेंड फ्रेमवर्क एक PHP-Framework है जो निःशुल्क है (कोई पैसा नहीं, और बीएसडी लाइसेंस) –

3

में काम कर सकते हैं आप दोनों क्लाइंट और वेब सेवा बना रहे हैं देखेंगे, तब वहाँ है एसओएपी, डब्लूएसडीएल, या उस जाज में से किसी भी के साथ फ़ुटज़ करने की कोई विशेष आवश्यकता नहीं है।

बस वेब की मूल बातें का उपयोग करें: ग्राहक जानकारी प्राप्त करने के लिए जीईटी का उपयोग कर सकते हैं, और इसे भेजने के लिए POST का उपयोग कर सकते हैं। आप किसी भी तरह से डेटा को प्रारूपित कर सकते हैं, लेकिन JSON और XML सामान्य, अच्छी तरह से परिभाषित दृष्टिकोण हैं।

आप अपने API डिजाइन के लिए प्रेरणा चाहते हैं, तो कुछ लोकप्रिय उदाहरण देखें:

यह शुरू करने के लिए पर्याप्त है, लेकिन यदि आप सीयू हैं डिजाइन दर्शन के बारे में चिंतित, आप Representational State Transfer या REST पर पढ़ सकते हैं।

+0

ठीक है, अब मैं उलझन में हूं, मैंने नेटबीन ट्यूटोरियल पढ़ने शुरू कर दिया है, क्योंकि मैं साइट पर जीपीएस डेटा को डिस्प्ले के लिए भेजना चाहता हूं। एक webservice इसे करने का सही तरीका प्रतीत होता था। वैसे भी, मैं webservices के अपने ज्ञान का विस्तार करना चाहता हूँ तो यह उपयोगी होगा। यदि इसके लिए कुछ और नहीं है। लिंक्स के लिए आपको धन्यवाद। – Richard

+0

क्या आपका मतलब था, कि उन सभी उदाहरण एपीआई आरईएसटी आर्केटेक्चर पर आधारित हैं ?? – Richard

+0

हाय, रिचर्ड। वेब सेवाओं को करने के विभिन्न तरीकों का एक समूह है। डब्ल्यूएसडीएल और एसओएपी का उपयोग करना एक तरीका है। लेकिन विशेष रूप से यदि आप वेब के लिए चीजों के निर्माण से पहले ही परिचित हैं, तो एक सरल रीस्टफुल दृष्टिकोण के साथ जाकर बहुत आसान हो सकता है। मुझे नहीं पता कि उन सभी एपीआई कैसे हैं; Google और याहू बहुत कुछ प्राप्त करते हैं। उनमें से कुछ निश्चित रूप से आरईएसटी और एसओएपी संस्करण दोनों हैं। लेकिन ट्विटर और फ़्लिकर बहुत अच्छे उदाहरण हैं। मैं अमेज़ॅन का जिक्र भी भूल गया; उनके कई एपीआई अच्छे आरईएसटी उदाहरण हैं। –

0

कुछ स्रोत "webservice" शब्द का उपयोग SOAP के समानार्थी के रूप में करेंगे। यह एक गलत नाम है। एसओएपी एक विशेष प्रोटोकॉल है - यह वेब सेवा बनाने के लिए एक तरीका है। अन्य तकनीकें उपलब्ध हैं। सामान्य एसओएपी जावा और नेट में पसंदीदा मानक है, लेकिन यह इस क्षेत्र के बाहर एक खराब फिट है। यदि आपके पास विकल्प है, तो मैं दृढ़ता से सुझाव दूंगा कि आप या तो xml-rpc (जो सरल है और PHP पर बेहतर प्रत्यक्ष समर्थन है) या http- आधारित सेवा (जिसे आरईएसटी आधारित भी कहा जाता है) पर विचार करें।

+0

आपका मतलब क्या है, यह PHP द्वारा बेहतर समर्थित है। क्योंकि मैंने सोचा था कि यह देशी साबुन कार्यों को php5.xxx के रूप में बंद कर दिया गया था? और वे सभी http लेयर स्लैश प्रोटोकॉल पर डेटा भेज रहे हैं? – Richard

+0

एसओएपी प्रोटोकॉल बेहद जटिल है। वर्तमान साबुन एक्सटेंशन केवल इसके उप-समूह को लागू करता है (विशेष रूप से सर्वर पक्ष बल्कि पैची है)। एक्सएमएल-आरपीसी एक बहुत ही सरल प्रोटोकॉल है, इसलिए एक्सटेंशन इसे बहुत अच्छी तरह से कवर करता है। यह सही है कि साबुन xml-rpc से विकसित हुआ है, लेकिन इसका मतलब यह नहीं है कि xml-rpc अप्रचलित है। – troelskn

+0

एसओएपी प्रोटोकॉल जटिल नहीं है। क्या "परिसर" के सापेक्ष? टीसीपी/आईपी से संबंधित? और जटिलता आमतौर पर उपकरण से छिपी हुई है। यदि "जटिलता" फ़ॉर्म को छिपाने के लिए कोई खाली उपकरण नहीं है, तो मैं समझता हूं कि इसे "जटिल" क्यों माना जाता है। –

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