services_viewsに正しい方法でアクセスするには?


11

services_viewsモジュールでいくつかのビューを取得しようとしてます。悲しいことに、「404:見つかりません:ビューmy_view_nameの表示が見つかりませんでした」という応答を受け取り続けました。

私はビュー3を使用していますが、「ページ」表示IDを持つビューをテストするために定義しました。(デフォルトの表示IDは「デフォルト」ではなくなりました)

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"

サービスのリソース定義では、display_idを引数として渡す必要があることは明らかです。

'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を取得していないことです。views_displayテーブルでデータベースを確認してください。
Stone 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

FirefoxまたはFirebugがインストールされている場合は、HTMLソースを確認して、display_idを取得できます。このスクリーンショットを参照してください(そして、私のページ引数を無視してください!):


1

services_viewsで同じ問題に直面し、サービスリクエストによって呼び出されたビューに引数を渡しました。モジュールにパッチを適用することで解決しましたが、機能しません。

これが私のプロジェクトの差分パッチです

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パラメータがなければなりません内部ディスプレイのID。私の知る限り、デフォルトの表示は常にid 'default'を持っています。

作成した追加のページ表示のIDはDrupal 6 UIには表示されませんが、ビューでエクスポートを実行し、結果のコードを確認することで確認できます。

各ディスプレイは$view->new_display()、3番目のパラメーターがid である呼び出しを使用して作成され ます(views_db_object :: new_displayを参照)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.