web-dev-qa-db-ja.com

RESTをクライアントとして使用するにはどうすればよいですか?

サードパーティのサーバーからノードの保存情報をインポートする必要がありますRESTサーバーからそのデータを、保存されたノードを参照するエンティティにマップします。ノードには、ユーザーが入力できるフィールドがあります。 REST呼び出しのURLで渡されるID。REST呼び出しは、参照される新しいエンティティにマップする必要があるXMLオブジェクトを返しますノードに。

これはどのように行われますか? Drupalこれを行う7つのモジュールの例はありますか?

5
Adam S

通常、私は自分でロールバックします。

drupal_http_build_querydrupal_http_request のコンボを使用してリクエストを作成します。次に drupal_json_decode を使用してJSON結果を解析するか、または simplexml_load_string を使用してXML結果を解析します。

可能な場合、私はこれをすべてPHP class as a singleton として抽象化しようとします。これには 静的キャッシング も含まれます=および/または実際のリクエストに対して cache_set / cache_get を介してキャッシュします。次に、すべてを通常のDrupalモジュールとしてラップします。

常に、私が使用しているサービスは、一般的なソリューションの使用を妨げる奇妙なものになります。また、一般的な解決策はカスタムの解決策ほど簡単ではありません。

10
mpdonadio

Webサービスクライアント モジュールを使用することもできます。 drupal Services モジュールから使用する場合は完全に一致しますが、他のREST APIでも使用できます。

1
sunzu

REST Client を見たことはありますか? (現在)本番用ではありませんが、どのAPIに対してもdrupal_http_requestを使用したくないだけの場合に適しています。

0
forest