タグ付けされた質問 「services」

Servicesモジュールは、外部アプリケーションをDrupalと統合するための標準化されたソリューションを提供します。

3
Drupal 7のWebサービスを介してサードパーティのデータ構造を統合する最も信頼性が高く、フォールトトレラントな方法は何ですか?
Drupalにリモートデータ構造を統合するためのいくつかの戦略を見てきました。特定のモジュールが安定し、ユースケースが試されたため、戦略は進化しているようです。 REST APIを介して公開されるいくつかのデータ型(market、market_hours、vender、stall、produce)などで表されるデータ構造「ファーマーズマーケット」があるとします。外部サービスのIDはDrupalで関連付ける必要があります。つまり、「market」をロードするときに、「market_hours」と「stall」からデータを取得する必要があります。それを定期的に同期されるDrupalの読み取り専用コンテンツとして表現するための最良の方法は何でしょうか? 私はこれを次の基準で評価しようとしています: Drupalのデータ構造: ノードとカスタムエンティティ 私が見たWebサービスに関連するいくつかのシナリオでは、カスタムエンティティを使用しています。CRUD操作を簡素化します。ただし、これらのアイテムは一般に表示されるという点で「コンテンツ」です。 ストレージ(ローカルvsリモート): サービスがリモートエンティティとして読み込まれる例をいくつか見てきました。このモジュールはhttps://drupal.org/project/wsdataのライブラリを作成します。これは最も魅力的に聞こえますが、多くのユースケースは見ていません。カスタムコードの例もあります:https : //drupal.org/sandbox/fago/1493180 データの同期: フィードvs移行vsグズルvs「Webサービスクライアント」vs「Webサービスデータ」 いくつかのオプションがあります。フィードでエンティティがサポートされるようになりました。特にカスタムシナリオの場合、移行はフィードよりもずっとクリーンに見えます。また、リモートサービスとの同期を取得するためにguzzleクライアントを使用している人々も目にしました。 inc#l273。また、WSクライアントモジュールhttps://drupal.org/project/wsclientが、レストクライアントとして特別に作成されたオプションを提供していることにも気付きました。Webサービスデータはサービスから直接読み込まれ、ローカルにキャッシュされます。 ご意見をお寄せいただきありがとうございます。
8 7  services 

4
サービス3を使用して画像を保存する方法
サービス3に関する非常に詳細なチュートリアルをいくつか見つけました。ここに小さなリストを示してあります。 http://drupal.org/node/1354202 node.saveサービスを使用してノードに複数のイメージを追加するにはどうすればよいですか? http://drupal.org/node/1699354 しかし、モバイルアプリからサーバーに画像をアップロードする方法が見つかりません。それは可能ですか?どこでサンプルを入手できますか? これを実現するためのサービスコアはありますか?すべてのソリューションは、それを動作させるために何かをコーディングする必要があるように見えます。
8 files  services 

2
DrupalサービスOAuth
私はこの問題に数週間取り組んでいますが、私の人生の解決策を見つけることができません。(DrupalのWebサイトや他のどこかで)適切なドキュメントが見つからなかったという事実も役に立ちません。そして、すでにここにある質問は時代遅れです(Services 2.x)。 Drupal Commerceが支援するサイト用のRESTサービスを作成しようとしています。現時点では、サービスが行う必要があるのは、Orderリソースでの基本的なCRUD操作を許可することだけであり、OAuthで保護されているため、OAuth 2.0は必要ありません。また、サーバー上のスクリプトを使用して呼び出す必要があるため、ログインのリダイレクトは不可能です(すべてが2-legged認証で行われます)。 現在のスタックは: PHP 5.3.15 Drupal 7.15 コマースキックスタートプロファイル(7.x-2.0-rc1) サービス7.x-3.2 OAuth 7.x-3.0 + 18-dev OAuth認証7.x-3.2 RESTサーバー7.x-3.2 Commerce Services 7.x-1.x-dev(これは、カスタム注文コードを追加したモジュールです) OAuth PHPライブラリを使用し、トークン要求を毎回呼び出すだけで、取得/インデックス関数をOrdersで機能させることができます(認証されていることを除いて、そこで何が行われているのかさえわかりません)。注文にPOSTして注文を作成しようとすると、OAuthが無効になっている場合でも、スクリプトで406を取得し、Google ChromeのRESTコンソールから直接POSTリクエストを試行すると401を取得します。 作成関数の内部で何が起こっているのか私にはわからないので、これはデバッグを悪夢にしました。注文作成ロジックを取り除いて、リクエストペイロードをエコーバックしました。それでも406/401エラーが発生します。 注文にはユーザー認証が必要なため(サービスでOAuthがオフになっている場合でも)、401エラーが発生すると思います。 しかし、なぜ406エラーが発生するのか理解できません。私は、RESTサーバーが返すように設定されているapplication / jsonを受け入れます。 注文作成ロジックをコメントアウトする前でも、注文は作成されていませんでした。(サイトの他の場所で効果的に使用しているものです。) 事前に感謝します。 -T

6
このDrupalサービスRESTful APIが機能しないのはなぜですか?
私はDrupal 7でサービスモジュールを使用しています。AJAXを介して検索用語を送信し、タイトルに緩やかに一致する上位5つのノード(ノードidとtitle)を含む配列を受け取ることができるサービスを実装したいと思います。http://example.com/api/に接続すると、次のメッセージが表示されます サービスエンドポイントの「検索」が正常にセットアップされました。 しかし、http://example.com/api/search/Testなどに移動しようとすると、404が表示されます。
8 7  nodes  ajax  services 

2
複数の水平drupalインスタンスの負荷分散
Servicesモジュールを使用してREST WebAPIを開発しました。正常に動作します。私は、Drupalインスタンスを水平方向にスケーリングする必要があると予測される使用法でそのAPIのクライアントを持っています。APIの性質上、大量のCPUおよびGPUリソ​​ースを必要とするため、クラウドサーバーを使用できないことに注意してください。また、私のAPIの性質上、DrupalインスタンスはWindows OSで実行する必要があります。(私のアプリケーションには、Win64でのみ利用可能なソフトウェアが必要です。)現在、同じ場所にかなり頑丈なサーバーがあり、この野心的なクライアントのために、次の方法でハードウェアを水平方向に拡張する予定です。 フロントエンドロードバランサーとしてHaProxyを実行している1つのCentOSサーバー 最初に2つ、必要に応じてさらに追加して、DrupalをホストするWindows Server 2008 R2サーバー、 複数のDrupalインスタンスに単一のデータベースを提供する1つのCentOSデータベースサーバー DBサーバー1が停止した場合に備えて、レプリケーションモードで実行されている1つのCentOSデータベースサーバー。 私の質問は、HaProxyロードバランサーの動作に関係しています。Drupalインスタンスによって作成されたセッションIDは、互いに一意であると想定しています。ロードバランサーはsessionIdを確認し、すべての要求をそのsessionIdを生成した同じサーバーにルーティングしますか?負荷分散によって各API要求が別のサーバーに送信される場合、REST WebAPI通信はどのように機能しますか?同じリソースに対する複数のAPIリクエストが同じDrupalインスタンスにルーティングされることを保証できないため、WebAPIによって参照されるすべてのデータをデータベースに保存する必要がありますか?

2
DrupalをWebサービスのクライアントとして使用する
DrupalをWebサービスのクライアントとして使用し、データを抽出してビューまたはコンテンツとして表示する必要があります。(使用するフォーマットはJSONまたはRESTです。) Drupal 7でWebサービスクライアントモジュールを使用し、Drupal 6でサービスモジュールを使用していますが、使用方法がわかりません。ドキュメントを読みましたが、結果が得られません。 誰かがこの問題を手伝ったり、これらのモジュールの使用方法を教えたりできますか?この目的のための他のモジュールはありますか? 可能な解決策:XML VIEWSというモジュールを見つけましたが、このモジュールはXMLファイルのみを変換します。 ここで、JSONをXMLに変換するためにこのモジュールでプログラミングします。 このファイルでは: xml_views_plugin_query_xml.inc この関数では:実行 誰か別の解決策がありますか?
8 7  services 

2
drupal HTTP POSTデータ
HTTP POST / GETデータをdrupalに送信するにはどうすればよいですか? 例:私はHTMLフォームを持っています: <form action="mydrupalcite.com" method="get"> <input type="text" name="title" /> </form> title'のデータをdrupalの回答モジュール(または任意のモジュール)に取り込むにはどうすればよいですか? 私はこれを行うための単調な方法を探しています サービスモジュールとは何か関係がありますか?
7 nodes  services  8 

2
認証されたRESTリクエストが匿名ユーザーになる
servicesおよびrest_serverモジュール(およびRESTful API全体)は初めてです。しかし、私が理解しているように、手順は基本的に次のとおりです。 データに設定されたユーザー名とパスワードを使用して/ api / user / loginに投稿リクエストを送信します 取得したトークンを応答に格納します 後続のpostリクエストで、キーX-CSRF-TOKENを使用してトークンをヘッダーに追加します Postman Chrome拡張機能を使用してそれを実行すると、うまく機能します。コードでそれを行うと、api / user / loginは正常に実行され、トークンを取得しますが、/ api / other / endpointにアクセスしようとすると、ユーザーの匿名エラーにより403 Access deniedが返されます。 最初のリクエスト(/ user / login)は次のようになります: POST /api/user/login HTTP/1.0 Content-Type: application/json Accept: application/json User-Agent: Drupal (+http://drupal.org/) Host: mysiteurl.com Content-Length: 41 {"username":"NAME","password":"PASSWORD"} そして、2番目のリクエスト(/ other / endpoint)は次のようになります。 POST /api/other/endpoint HTTP/1.0 Content-Type: …
7 services  8  users 

4
URLを介して公開されたフィルターに複数の値を使用する方法
現在のセットアップでは、サービスを通じてjsonを出力するビューを公開しています。 ビューは次のように呼び出すことができますhttp://domain.com/api/books.json。 また、参照コンテンツタイプ「作成者」にフィルターを公開しました。私はを使用していません。context filters通常のFiltersフィルターを使用していて、その特定のフィルターをユーザーに公開しています。これにより、フィルターに適切な引数名を付けることができますauthor_nid。 これで、これを呼び出すことができますhttp://domain.com/api/books.json?author_nid=38。そして、これはそのnidを持つ著者のすべての本を返します。 しかし、著者38と著者32の両方の本のリストを取得する方法がわかりません。 私が試したこと: http://domain.com/api/books.json?author_nid=38,32 http://domain.com/api/books.json?author_nid=38+32 http://domain.com/api/books.json?author_nid[]=38,32 http://domain.com/api/books.json?author_nid[]=38+32 http://domain.com/api/books.json?author_nid[0]=38&author_nid[1]=32 これは現在サポートされていないような気がします。私は正しいですか?もしそうなら、私の選択肢は何ですか?10〜15個のフィルターを公開するので、引数に名前を付けたいと思います(一部はオプション、その他は必須)。コンテキストフィルターを使用して、次のようにフィルター処理することargs[]=2&args[]=43,23&args[]=44は、あまり読みやすく/維持できません。
7 views  services 

2
サービスモジュールから1つの分類のみの用語を取得する
サービスモジュールをインストールし、両方taxonomy_termをtaxonomy_vocabularyチェックしました。ただし、1つの語彙の用語だけを取得するのに問題があります。私がするときcurl -g "http://domain.com/endpoint/taxonomy_term?args[0]=machine_name_of_vocabulary"またはcurl -g "http://domain.com/endpoint/taxonomy_term?args[0]=2" 次のようなxml結果が得られます。 <result> <item> <tid>2</tid> <vid>2</vid> <name>Blue</name> <description/> <format>filtered_html</format> <weight>0</weight> </item> <item> <tid>1</tid> <vid>5</vid> <name>Apple</name> <description/> <format>filtered_html</format> <weight>0</weight> </item> </result> これはすべての語彙の用語です。言い換えれば、私は議論が間違っているか、要求が間違っているか、何か他のことが間違っています。 サービスを構成し、1つの語彙のみを取得するようにサービスに要求するにはどうすればよいですか?

2
サービス3およびノー​​ドリファレンス
モジュールサービス3(D7)を使用しており、JavaクライアントからDrupalメソッドを呼び出しています。ログインして(セッションをCookieに保存して)、単純なノードを作成できます。 しかし、ノード参照フィールドを設定できません。 それを行う方法を見つけるために、私はまず、drupalサイトのノード構造(参照フィールドを含む)を調べました。 [field_presta_presta_suivi] => Array ( [und] => Array ( [0] => Array ( [nid] => 43 ) ) ) そこで、Javaクライアントで、この構造を再現する関数を作成しました。 public static HashMap addReferenceField(String field, String language, String type_ref,Object value, HashMap node, int delta ){ HashMap f = new HashMap(); HashMap p = new HashMap(); Object[] i = …
7 7  services 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.