सही तरीके से services_views कैसे एक्सेस करें?


11

मैं services_views मॉड्यूल के साथ कुछ दृश्य लाने का प्रयास कर रहा हूं । दुःख की बात है कि मुझे प्रतिक्रिया मिलती रही: "404: नहीं मिली: my_view_name को प्रदर्शित नहीं किया जा सका"।

मैं व्यू 3 का उपयोग कर रहा हूं और मैंने 'पेज' डिस्प्ले आईडी के साथ एक दृश्य का परीक्षण करने के लिए परिभाषित किया है। (डिफ़ॉल्ट प्रदर्शन आईडी अब "डिफ़ॉल्ट" नहीं है)

मुझे पता है कि मुझे display_id तर्क पास करना होगा लेकिन बस यह काम नहीं कर सकता।

यहां उन कॉलों का उपयोग किया जा रहा है जिन्हें मैं इस्तेमाल करने की कोशिश कर रहा हूं:

http://www.mywebsite.com/rest/views/my_view_name.json?display_id="page"
http://www.mywebsite.com/rest/views/my_view_name.json?display_id=page
http://www.mywebsite.com/rest/views/my_view_name.json?parameters[display_id]="page"
http://www.mywebsite.com/rest/views/my_view_name.json?args[display_id]="page"

सेवा के लिए संसाधन परिभाषा में यह स्पष्ट है कि डिस्प्ले_ड को एक तर्क के रूप में पारित किया जाना है।

'args' => array(
  'view_name' => array(
    'name' => 'view_name',
    'type' => 'string',
    'description' => 'The name of the view to get.',
    'source' => array('path' => '0'),
    'optional' => FALSE,
  ),
  'display_id' => array(
    'name' => 'display_id',
    'type' => 'string',
    'description' => 'The display ID of the view to get.',
    'source' => 'param',
    'optional' => TRUE,
    'default value' => 'default',
  ),...

क्या कोई है जो इस काम को करने में कामयाब रहा?

धन्यवाद।


मुझे लगता है कि लिंक mywebsite.com/rest/views/my_view_name.json?display_id=page एक सही है। समस्या यह है कि आपको सही display_id नहीं मिला। कृपया view_display तालिका में डेटाबेस देखें।
स्टोन Vo

जवाबों:


1

इस मॉड्यूल के लिए Drupal.org समस्या पृष्ठ पर , कोई 7.x संस्करण के लिए निम्नलिखित सुझाव देता है।

The arguments are passed in the usual url format, for example:
http://example.com/my_endpoint/views/view_name?display_id=default&args=123&offset=0&limit=10&return_type=FALSE

Multiple arguments can be used like this:
http://example.com/my_endpoint/views/view_name?display_id=default&args[0]=abc&args[1]=123&offset=0&limit=10&return_type=FALSE

मैं इस पर काम करने की कोशिश कर रहा हूँ 6.x, लेकिन अभी तक सफल नहीं हुआ है।


1

यदि आपने फ़ायरफ़ॉक्स स्थापित किया है, या Firebug आप HTML_ को देखने के लिए देख सकते हैं। यह स्क्रीन शॉट देखें (और कृपया मेरे पृष्ठ तर्क की उपेक्षा करें!):


1

मुझे सेवाओं के अनुरोध द्वारा तर्कों को पास करने के लिए services_ साक्षात्कार के साथ एक ही समस्या का सामना करना पड़ा और मैंने इसे मॉड्यूल में पैच लागू करके हल किया, इसके बिना यह काम नहीं करेगा।

यहाँ मेरी परियोजना से एक अलग पैच है

diff --git a/sites/all/modules/services_views/services_views.moduleb/sites/all/modules/services_views/services_views.module
index 9ce8080..65dd92e 100755
--- a/sites/all/modules/services_views/services_views.module
+++ b/sites/all/modules/services_views/services_views.module
@@ -182,6 +182,10 @@ function services_views_views_plugins() {
 function services_views_services_request_preprocess_alter($controller, &$args, $options) {
   if (isset($controller['view info'])) {
     array_unshift($args, $controller['view info']);
+    $args[0]['args'] = array();
+     if (!empty($_GET['args'])) {
+       $args[0]['args'] = $_GET['args'];
+     }
   }
 }

diff --git a/sites/all/modules/services_views/services_views.resource.inc b/sites/all/modules/services_views/services_views.resource.inc
index eb9fbb4..aae2975 100755
--- a/sites/all/modules/services_views/services_views.resource.inc
+++ b/sites/all/modules/services_views/services_views.resource.inc
@@ -111,10 +111,11 @@ function services_views_execute_view($view_info, $view = NULL, $display_id = NUL
     $view_name = $view_info['view_name'];
     $display_id = $view_info['display_id'];

-    $args = array();
+    $args = $view_info['args'];

     $view = views_get_view($view_name);
     $view->set_arguments($args);
+    $view->execute_display($display_id, $args);
   }

मुझे पैच का लिंक याद नहीं है, लेकिन यह देखने में मदद कर सकता है कि सेवाओं के विचार समस्याएँ उत्पन्न करते हैं

यदि आपने उस दृश्य के लिए एक सेवा प्रदर्शन बनाया है जिसे आप इसे स्वयं के संसाधन के रूप में देखेंगे।यहाँ छवि विवरण दर्ज करें

उम्मीद है की वो मदद करदे


0

संभावना है कि आप चाहते हैं display_id=page_1display_idपैरामीटर होना चाहिए आंतरिक प्रदर्शन की आईडी। AFAIK डिफॉल्ट डिस्प्ले में हमेशा आईडी 'डिफॉल्ट' होता है।

आईडी आपके द्वारा बनाए गए किसी भी अतिरिक्त पृष्ठ डिस्प्ले को Drupal 6 UI में दिखाई नहीं देता है, लेकिन आप उन्हें अपने दृश्य पर निर्यात करके और परिणामी कोड को देखकर पता लगा सकते हैं।

प्रत्येक डिस्प्ले को एक कॉल के साथ बनाया जाता है $view->new_display()जहाँ तीसरा पैरामीटर आईडी है (देखें view_db_object :: new_display )।

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