logo

Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Drupal 11 के साथ Webform REST मॉड्यूल का उपयोग कैसे करें: एक व्यावहारिक मार्गदर्शिका

03/09/2025, by Ivan

JSON Drop API Documentation

वेब विकास के लगातार बदलते परिदृश्य में, Drupal 11 गतिशील वेबसाइटों और अनुप्रयोगों के निर्माण के लिए सबसे मजबूत और लचीले प्लेटफ़ॉर्म में से एक के रूप में सामने आता है। इसकी मॉड्यूलर आर्किटेक्चर डेवलपर्स को विभिन्न परियोजना आवश्यकताओं को पूरा करने के लिए कोर कार्यक्षमताओं को अनुकूलित और विस्तारित करने की शक्ति प्रदान करती है।

ऐसा ही एक एक्सटेंशन है Webform REST मॉड्यूल, एक शक्तिशाली उपकरण जो RESTful API के माध्यम से Drupal और बाहरी अनुप्रयोगों के बीच सहज एकीकरण सक्षम करता है। यह गाइड Drupal 11 के साथ Webform REST मॉड्यूल का उपयोग करने का व्यावहारिक परिचय प्रदान करता है, इसके सेटअप और कॉन्फ़िगरेशन की प्रक्रिया बताता है और प्रभावी ढंग से इसके साथ इंटरैक्ट करना दिखाता है।


आप क्या सीखेंगे

यह लेख निम्नलिखित विषयों को कवर करता है:

  • Webform REST मॉड्यूल का अवलोकन

  • आवश्यक मॉड्यूल और निर्भरताएँ

  • Webform REST और REST UI की स्थापना

  • Webform REST मॉड्यूल कॉन्फ़िगर करना

  • CORS हैंडल करना

  • API अनुरोध करना

  • रिक्वेस्ट और रिस्पॉन्स पेलोड को समझना


मॉड्यूल अवलोकन: Webform REST

Webform REST मॉड्यूल Drupal की Webform क्षमताओं का विस्तार करता है, फॉर्म से संबंधित कार्यक्षमताओं को RESTful एंडपॉइंट्स के माध्यम से उजागर करके। इसके साथ, आप HTTP अनुरोधों के माध्यम से वेब फॉर्म बनाना, देखना, अपडेट करना और हटाना, साथ ही फॉर्म डेटा सबमिट और पुनः प्राप्त करना जैसे ऑपरेशंस कर सकते हैं।

यह मॉड्यूल विशेष रूप से Drupal को बाहरी प्लेटफ़ॉर्म जैसे कि निम्नलिखित के साथ एकीकृत करने में उपयोगी है:

  • CRM सिस्टम

  • ईमेल मार्केटिंग टूल्स

  • मोबाइल एप्लिकेशन

  • थर्ड-पार्टी सेवाएँ

इन इंटीग्रेशन्स को सक्षम करके, आप वर्कफ़्लोज़ को सुव्यवस्थित कर सकते हैं और डेटा संग्रह को केंद्रीकृत कर सकते हैं, जिससे आपके एप्लिकेशन की समग्र दक्षता में काफी वृद्धि होती है।


पूर्वापेक्षाएँ

Webform REST के साथ आरंभ करने के लिए, सुनिश्चित करें कि आपके पास निम्नलिखित मॉड्यूल इंस्टॉल हैं:

  • Webform – वेब फॉर्म बनाने और प्रबंधित करने के लिए

  • REST UI – RESTful एंडपॉइंट्स और अनुमतियाँ कॉन्फ़िगर करने के लिए

  • Webform REST – मुख्य मॉड्यूल जो API कार्यक्षमता प्रदान करता है


Webform REST और निर्भरताएँ स्थापित करना

इस गाइड में, हम स्थानीय विकास वातावरण प्रबंधित करने के लिए Docker और Lando का उपयोग कर रहे हैं और निर्भरता प्रबंधन के लिए Composer का उपयोग कर रहे हैं।

Webform REST मॉड्यूल स्थापित करने के लिए, निम्नलिखित कमांड चलाएँ:

$ lando composer require 'drupal/webform_rest:^4.0'

मॉड्यूल को सक्षम करने के लिए:

$ lando drush en webform_rest

इसके अतिरिक्त, REST UI मॉड्यूल सक्षम करें, जो आपको एडमिन इंटरफ़ेस के माध्यम से REST एंडपॉइंट्स कॉन्फ़िगर करने की अनुमति देता है:

$ lando drush en restui

वैकल्पिक रूप से, आप इन मॉड्यूल्स को एडमिन इंटरफ़ेस के माध्यम से सक्रिय कर सकते हैं:
/admin/modules


Webform REST मॉड्यूल कॉन्फ़िगर करना

आवश्यक मॉड्यूल सक्षम करने के बाद, REST कॉन्फ़िगरेशन पेज पर जाएँ:

पथ: /admin/config/services/rest

निम्नलिखित REST संसाधन सक्षम करें:

  • Webform Submission

  • Webform Elements

  • Webform Submit

ये संसाधन REST के माध्यम से फॉर्म और उनके डेटा के साथ इंटरैक्ट करने के लिए आवश्यक एंडपॉइंट प्रदान करते हैं।

Update article resources

कम से कम एक प्रमाणीकरण विधि का चयन करना आवश्यक है, हमारे मामले में, "cookie"।

Send post settings

Unauthenticated users को वेब फॉर्म के माध्यम से अनुरोध सबमिट करने में सक्षम करने के लिए, आपको Anonymous यूज़र रोल को उचित अनुमति देनी होगी। विशेष रूप से, उन्हें Webform Submit REST संसाधन के लिए POST अनुरोध करने की अनुमति दें।

यह अनुमति निम्न पथ पर जाकर कॉन्फ़िगर की जा सकती है:
/admin/people/permissions

“RESTful Web Services” सेक्शन के अंतर्गत, Anonymous user के लिए “Access POST on Webform Submit resource” का चेकबॉक्स टिक करें। यह सुनिश्चित करता है कि बिना प्रमाणीकरण के बाहरी उपयोगकर्ता या सिस्टम Webform REST API के माध्यम से सफलतापूर्वक आपके Drupal साइट पर डेटा सबमिट कर सकते हैं।

Permissions page

CORS के बारे में एक शब्द

यदि आप अपनी एप्लिकेशन की स्थापना के डोमेन से अलग डोमेन से अनुरोध करना चाहते हैं, तो आपको संभवतः इस तरह की CORS समस्या का सामना करना पड़ेगा:

CORS error

Drupal 11 में CORS को समझना और कॉन्फ़िगर करना

CORS (Cross-Origin Resource Sharing) एक महत्वपूर्ण सुरक्षा मैकेनिज़्म है जिसे वेब ब्राउज़र द्वारा लागू किया जाता है, ताकि विभिन्न ओरिजिन्स के बीच संसाधनों तक पहुँच को नियंत्रित किया जा सके—जहाँ origin को डोमेन, प्रोटोकॉल और पोर्ट के संयोजन के रूप में परिभाषित किया जाता है।

सरल शब्दों में, CORS सर्वर को यह निर्दिष्ट करने की अनुमति देता है कि कौन से बाहरी डोमेन ब्राउज़र-आधारित अनुरोधों के माध्यम से विशिष्ट संसाधनों तक पहुँच सकते हैं। यदि ठीक से कॉन्फ़िगर की गई CORS नीति नहीं है, तो ब्राउज़र Same-Origin Policy का उपयोग करता है, जो उस वेब पेज को सर्व करने वाले ओरिजिन के अलावा किसी अन्य ओरिजिन से संसाधनों तक पहुँच को ब्लॉक कर देता है।


Drupal 11 में CORS कॉन्फ़िगर करना

Drupal 11 services.yml फ़ाइल के माध्यम से CORS सेटिंग्स प्रबंधित करता है, विशेष रूप से cors.config सेक्शन के अंतर्गत। डिफ़ॉल्ट रूप से, यह कॉन्फ़िगरेशन अक्षम होता है, जिसका अर्थ है कि क्रॉस-ओरिजिन अनुरोध तब तक ब्लॉक हो जाएंगे जब तक कि उन्हें स्पष्ट रूप से अनुमति न दी जाए।

बाहरी क्लाइंट्स—जैसे कि JavaScript फ्रंटएंड्स या मोबाइल ऐप्स—के लिए CORS सक्षम करने के लिए, आपको अपनी services.yml फ़ाइल में कॉन्फ़िगरेशन संशोधित करना होगा। यहाँ विकास या परीक्षण उद्देश्यों के लिए एक permissive सेटअप का उदाहरण है:

cors.config:
    enabled: true
    allowedHeaders: ['x-csrf-token','authorization','content-type','accept','origin','x-requested-with', 'access-control-allow-origin','x-allowed-header','*']
    allowedMethods: ['*']
    allowedOrigins: ['*']
    exposedHeaders: false
    maxAge: false
    supportsCredentials: true

स्थानीय विकास में services.local.yml कॉन्फ़िगर करना

अधिकांश Drupal स्थानीय विकास सेटअप में, आपके पास services.local.yml नामक फ़ाइल होगी। यह फ़ाइल विशेष रूप से मुख्य services.yml से कॉन्फ़िगरेशन को ओवरराइड करने के लिए बनाई गई है। इसलिए, यदि services.local.yml में विरोधाभासी या अधूरी सेटिंग्स मौजूद हैं, तो आपके द्वारा services.yml में किए गए परिवर्तन अनदेखे किए जा सकते हैं।

यह सुनिश्चित करने के लिए कि आपका CORS कॉन्फ़िगरेशन सही तरीके से लागू हो रहा है, services.local.yml में भी सेटिंग्स को संशोधित या कॉपी करें।

कॉन्फ़िगरेशन के बाद कैश साफ़ करें

अपनी YAML कॉन्फ़िगरेशन फ़ाइलों को अपडेट करने के बाद, Drupal कैश साफ़ करें ताकि परिवर्तन लागू हो सकें:

$ lando drush cr

YAML इंडेंटेशन का महत्व

YAML इंडेंटेशन पर ध्यान दें, क्योंकि यह कॉन्फ़िगरेशन समस्याओं का एक सामान्य स्रोत है। एक भी गलत स्पेस या टैब सेटिंग्स को अनदेखा कर सकता है—जिससे अनावश्यक डिबगिंग के घंटों बर्बाद हो सकते हैं। यदि आपके परिवर्तन प्रभावी नहीं हो रहे हैं, तो सबसे पहले अपने इंडेंटेशन को दोबारा जांचें।


Webform REST मॉड्यूल का उपयोग करना

एक बार जब सब कुछ कॉन्फ़िगर हो जाता है, तो आप REST के माध्यम से फॉर्म सबमिट करना शुरू कर सकते हैं। इस प्रक्रिया में आवश्यक हेडर और पेलोड के साथ Webform REST एंडपॉइंट पर एक POST अनुरोध भेजना शामिल है।

एंडपॉइंट

POST /webform_rest/submit

आवश्यक हेडर

Content-Type: application/json

उदाहरण: Axios का उपयोग करके फॉर्म सबमिट करना

फॉर्म डेटा सबमिट करने के लिए JavaScript में एक नमूना Axios अनुरोध यहाँ दिया गया है:

 const response = await axios.post('http://yoursite.lndo.site/webform_rest/submit', {
    "webform_id": "some_rest_form",
    "name": "Ivan Abramenko",
    "email": "levmyshkin89@gmail.com",
  }, {
    headers: {
    "Content-Type": 'application/json',
    },
  });

यह उदाहरण दिखाता है कि Axios का उपयोग करके POST अनुरोध कैसे करें, लेकिन आप अनुरोध करने के लिए अन्य HTTP लाइब्रेरी या फ्रेमवर्क का भी उपयोग कर सकते हैं।

रिक्वेस्ट पेलोड मुख्य रूप से webform_id (लक्षित फॉर्म का मशीन नाम) और उसके रजिस्टर किए गए फ़ील्ड्स से बना होता है।

{
   "webform_id": "some_rest_form",
   "name": "Ivan Abramenko",
   "email": "levmyshkin89@gmail.com"
}

सफल सबमिशन के रिस्पॉन्स पेलोड में निम्नलिखित फ़ील्ड्स शामिल होते हैं:

  • sid, रिकॉर्ड किए गए सबमिशन का अद्वितीय पहचानकर्ता
  • confirmation_url, सबमिशन पुष्टि URL
  • confirmation_message, पुष्टि संदेश
  • confirmation_title, पुष्टि संदेश का शीर्षक
{
   "sid": "ae8c3bd4-91a2-5c17-a264-59c86157457b",
   "confirmation_type": "inline",
   "confirmation_url": "",
   "confirmation_message": "Just a confirmation message",
   "confirmation_title": "A confirmation title"
}

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

{
   "message": "Submitted Data contains validation errors.",
   "error": {
       "email": "The email field is mandatory."
   }
}

API प्रतिक्रिया को संभालना

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

चाहे आप फॉर्म को किसी फ्रंटएंड फ्रेमवर्क के साथ एकीकृत कर रहे हों या किसी मोबाइल ऐप के साथ, API प्रतिक्रिया को प्रभावी ढंग से प्रबंधित करना एक सहज और सहज अनुभव प्रदान करने की कुंजी है।


समापन

Drupal 11 के लिए Webform REST मॉड्यूल वेब फॉर्म्स के साथ RESTful API के माध्यम से इंटरैक्ट करने के लिए एक शक्तिशाली और लचीला समाधान प्रदान करता है। बाहरी अनुप्रयोगों को फॉर्म डेटा सबमिट और मैनेज करने की अनुमति देकर, यह Drupal की इंटीग्रेशन क्षमताओं का विस्तार करता है—जिससे यह आधुनिक वेब आर्किटेक्चर के लिए आदर्श बन जाता है जो डीकपल्ड या हेडलेस दृष्टिकोणों पर निर्भर करते हैं।

इस लेख में, हमने निम्नलिखित का अन्वेषण किया:

  • Webform REST मॉड्यूल का परिचय

  • चरण-दर-चरण स्थापना और कॉन्फ़िगरेशन

  • API के माध्यम से डेटा सबमिट करने का व्यावहारिक उदाहरण

हालाँकि यह गाइड फॉर्म सबमिशन पर केंद्रित था, Webform REST मॉड्यूल अतिरिक्त ऑपरेशंस का भी समर्थन करता है जिन्हें यहाँ कवर नहीं किया गया, जैसे कि:

  • PATCH अनुरोध मौजूदा सबमिशन अपडेट करने के लिए

  • GET अनुरोध सबमिशन डेटा प्राप्त करने या फॉर्म फ़ील्ड्स की सूची देखने के लिए

  • प्रमाणीकरण और एक्सेस नियंत्रण के लिए अतिरिक्त अनुकूलन

इन उन्नत उपयोग मामलों का भविष्य के ट्यूटोरियल्स में विस्तार से अध्ययन किया जाएगा।