Joomla के साथ एक RESTful API का निर्माण कैसे करें


11

मैं v1 के बाद से जूमला एक्सटेंशन का निर्माण कर रहा हूं, लेकिन मुझे जल्द ही एक एपीआई लाइव लेने की जरूरत है जिसे मैंने बनाया है और थोड़ी देर के लिए उपयोग कर रहा हूं। वर्तमान में मैं जूमला 2.5 का उपयोग कर रहा हूं और इस प्रणाली के लिए प्लग इन लिखा है:

https://github.com/techjoomla/com_api

लाइव होने से पहले मैं भविष्य में जितना संभव हो सके सिस्टम को प्रूफ देना चाहूंगा। इस API घटक को केवल हाल ही में Joomla v3 के साथ काम करने के लिए अपग्रेड किया जाना शुरू हुआ है, इसलिए यह वर्तमान में साइट को अपग्रेड होने से रोक रहा है। मुझे यह भी लगता है कि सार्वजनिक एपीआई को अलग करना और उपयोगकर्ता पोर्टल को समझ में आता है क्योंकि इसमें कोई एकीकृत लाभ नहीं है क्योंकि मोबाइल एप्लिकेशन द्वारा एपीआई का उपयोग किया जाएगा।

वर्तमान योजना एक उपडोमेन पर एपीआई का पुनर्निर्माण करना है जो हमें उपयोगकर्ता पोर्टल को अपग्रेड करने की अनुमति देगा। मैं नए जूमला ढांचे के बारे में पढ़ रहा हूं जो रोमांचक लगता है। क्या यह हमारे मोबाइल ऐप्स के लिए RESTful API बनाने के लिए उपयुक्त होगा? यदि हां, तो क्या वे शुरू करने के लिए सुझाव हैं? मैंने पढ़ा है कि API बनाने के लिए FoF का उपयोग किया जा सकता है, क्या यह एक अच्छा विकल्प होगा? मैंने देखा कि किकस्टार्टर परियोजना का इरादा एपीआई के इस प्रकार के निर्माण का है, क्या यह एक संभावित विकल्प है? क्या मुझे अभी उपडोमेन के लिए वर्तमान 2.5 साइट को वापस लेना चाहिए ताकि यह केवल एपीआई चला सके?

मोबाइल इंटरेक्शन के लिए जूमला आधारित रेस्टफुल एपीआई के निर्माण के लिए सर्वोत्तम दृष्टिकोण पर किसी भी सुझाव की बहुत सराहना की जाएगी।


1
: मैं बस जो आपके लिए उपयोगी हो सकता है पर जूमला एक्सटेंशन निर्देशिका इस नए एक्सटेंशन देखा है extensions.joomla.org/extensions/core-enhancements/libraries/...
Lodder

जवाबों:


8

मेरे अनुभव से:

जूमला ढांचे के बारे में

मैंने जूमला फ्रेमवर्क पर आधारित एकीकृत प्रमाणीकरण के लिए एक साधारण रेस्टफुल एपीआई बनाने की कोशिश की। यह काफी जटिल है, वर्तमान जुमला एपीआई से काफी अलग है। इसके अलावा, वर्तमान स्रोत कोड को कॉपी-पेस्ट नहीं किया जा सकता है, और लाइब्रेरी अप्रत्याशित परिणाम (एक अलग वातावरण में निष्पादित) हो सकती है। मैं अधिक कोड उपलब्ध होने तक प्रतीक्षा करने जा रहा हूं, और इसे अधिक से अधिक अपनाने की आवश्यकता है।

एफओएफ ढांचे के बारे में

मैं वर्तमान में केवल एफओएफ के साथ विकास कर रहा हूं। काफी आसान, बहुत सारे आरएडी, स्वचालित कॉन्फ़िगरेशन, आदि; और कोड J2.5 / J3 के साथ संगत है।

RESTful API के लिए, आप बस todo-fof-example को पकड़ सकते हैं, और एपीआई के साथ एक नियंत्रक जोड़ सकते हैं। उदाहरण:

public function getIndexStatus()
{
    // CSRF prevention
    if ($this->csrfProtection)
    {
        $this->_csrfProtection();
    }

    $message['status'] = true;
    $message['error_message'] = 'Status Ok';

    $message = json_encode($message);
    echo $message;
    flush();

    JFactory::getApplication()->close();

}

इसके अलावा, आप स्वचालित json विचारों का लाभ ले सकते हैं। उदाहरण के लिए ब्राउज़िंग दृश्य (default.php) json आउटपुट (केवल जोड़ने default_json.phpऔर echo json_encode...) उत्पन्न कर सकता है


1
एफओएफ के साथ एकमात्र समस्या जैसा कि मैं इसे समझता हूं, यह है कि यह अब जूमला कोर में डेवलपर द्वारा समर्थित नहीं है ... हालांकि मैं समझता हूं कि एफओएफ का एक संस्करण फिर से फोर्क किया गया है और आगे जा रहा है, सिर्फ जुमला के हिस्से के रूप में नहीं?
क्रेग

आप सही हैं, लेकिन यह कोई मुद्दा नहीं है। जूमला का एफओएफ काफी स्थिर है (मैंने अभी तक अपने एक्सटेंशन को अपग्रेड नहीं किया है)। नई F0F को एक नई लाइब्रेरी के रूप में स्थापित किया जाना है (... अंत में आपको इसे हमेशा J2.5 में स्थापित करना होगा ... और इंस्टॉलर J3 के लिए तैयार है)। अभी, 99% स्रोत कोड बदल नहीं गया है।
ऐबाल

आपके सुझावों के लिए धन्यवाद, मैं सहमत हूं कि जूमला फ्रेमवर्क काफी जटिल है लेकिन मैं इसका उपयोग करना सीखने का आनंद ले रहा हूं। मैं अपने एपीआई के लिए फ्रेमवर्क का उपयोग करने की कोशिश करना चाहता था क्योंकि यह काफी सरल है लेकिन इसे JSON के लिए सही हेडर वापस करने के लिए नहीं मिल सकता है। मैंने इसके बारे में एक और सवाल शुरू किया।
जो पी

6

com_api निश्चित रूप से आपकी साइट के लिए REST सेवाओं का निर्माण करने का एक अच्छा तरीका है यदि एक्सटेंशन स्वयं FOF / RAD पर आधारित नहीं है। हालाँकि, कुछ गोचरों से सावधान रहें यदि आप केवल एपीआई के लिए एक अलग जुमला उदाहरण बनाने की योजना बनाते हैं

  • डोमेन विशिष्ट सामग्री (उदाहरण: यदि आप उपयोगकर्ता पंजीकरण का समर्थन कर रहे हैं, तो स्वागत ईमेल में एपीआई सबडोमेन का लिंक शामिल होगा)। यह PHP सर्वर चर के साथ खेलने के द्वारा कम किया जा सकता है।
  • इसी तरह छवि पथ आदि को सही होने की आवश्यकता है, जब तक कि आप S3 का उपयोग नहीं कर रहे हैं

इसके अलावा, मुझे यकीन है कि कोई समस्या नहीं होनी चाहिए, क्योंकि तब तक इसे विकसित किया जाना जारी रहेगा जब तक कि एपीआई बनाने का एक वास्तविक तरीका जूमला नहीं है।

अस्वीकरण: मैं https://github.com/techjoomla/com_api का अनुरक्षक हूं


आपके उत्तर के लिए धन्यवाद, यह जानना बहुत अच्छा है कि आप इसे विकसित करना जारी रख रहे हैं। मुझे पसंद है कि कॉम_एपी कैसे काम करता है लेकिन मैं कोशिश कर रहा था कि केवल एक एपीआई प्रदान करने के लिए पूरे जूमला सीएमएस को चलाने से बचूं। अगर मुझे जरूरत के अनुसार काम करने की रूपरेखा नहीं मिल रही है, तो मैं निश्चित रूप से इसका उपयोग करना जारी रखूंगा।
जो पी।

1

मेरे दो सेंट:

एक ग्राहक के लिए मुझे स्मार्टफोन ऐप से उसकी जूमला साइट की सामग्री तक पहुंचने की आवश्यकता थी। सामग्री को com_content में रखा गया था इसलिए शुरू में मैंने obRSS फीड का उपयोग किया। तब मैंने JED पर jBackend पाया और इसे आज़माया। यह यहाँ उपलब्ध है http://www.selfget.com/products/jbackend.html कोड बहुत साफ लगता है और यह RESTful अनुरोधों और JSON प्रतिक्रियाओं का समर्थन करता है। ऑनलाइन प्रलेखन सीमित है, लेकिन तकनीशियनों के लिए पर्याप्त स्पष्ट है। दुर्भाग्य से इस समय यह केवल com_user और com_content का समर्थन करता है लेकिन मेरे मामले में यह ठीक था। अब मुझे इसका उपयोग दूसरे ग्राहक के लिए करना चाहिए जो K2 CCK का उपयोग करता है। मैं K2 लेख और श्रेणियों तक पहुंचने के लिए एक कस्टम प्लगइन बनाने की कोशिश कर रहा हूं, लेकिन कम से कम मैं पूरे अनुरोध प्रबंधन कोड को बचाऊंगा। मैंने डेवलपर को एक ईमेल भेजा और उसने मुझे बताया कि वह अतिरिक्त मॉड्यूल जैसे K2 और कुनेना फोरम पर भी काम कर रहा है, यह बहुत आशाजनक विस्तार है।


1

निम्नलिखित साइट दिशानिर्देशों के लिए एक उत्कृष्ट संसाधन प्रतीत होती है कि कैसे एक RESTful JSON API का निर्माण किया जाए:

http://jsonapi.org/

इसके लायक क्या है, मैं जूमला 3.4.x के लिए एक एपीआई उत्पाद भी लॉन्च कर रहा हूं जिसे cAPI http://getcapi.org कहा जाता है ।

यहाँ प्राथमिक अंतर यह है कि मैंने अपने रूटिंग ढांचे को स्लिम माइक्रो-फ्रेमवर्क पर स्टेक किया। यह मुझे जूमला एप्लिकेशन इंस्टेंस में पहले से ही आजमाए गए और परीक्षण किए गए, मजबूत ढांचे को शामिल करने की अनुमति देता है। मैंने सेवा मार्गों के लिए एक प्लगइन आर्किटेक्चर भी बनाया है, जो ऐड-ऑन और वेब सेवाओं की सुरक्षा के लिए दरवाजा खोल रहा है।

आप अन्य पदों से अतिरिक्त जानकारी यहाँ पा सकते हैं:

/programming/26340885/rest-api-for-joomla-3-0/32706378#32706378

अगर आपका कोई प्रश्न हैं, तो मुझे से पूछें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.