web-dev-qa-db-ja.com

RESTful Webサービスの利用

RESTを介してJSONやHAL + JSON Webサービスを利用するためにGuzzleを活用する既存のDrupal 8モジュール(drupal.org、GitHub、またはその他の場所))はありますか?

または、Drupalコアに同梱されているGuzzle HTTPクライアントを活用するカスタムモジュールを作成するための推奨方法はありますか?

私の最終目標は、RESTful Webサービスからのキーと値のペアでフィールド(ノード、ユーザー...)をマップする1対1の関係を作成できるようにすることです。次に、それらの値を読み取り、更新、または削除できるようにする必要があります。

3
anavarre

ああ、たった今気づいたかもしれませんが、100%質問を誤解しているかもしれません

これは基本的に出力を生成するコードです:

$serializer = \Drupal::service('serializer'):
$output = $serializer->serialize($entity, $format);

たとえば$ formatは 'json'です。

幸いなことに、シリアライザは対称的であるため、逆の方法でも同じことができます。

$client = \Drupal::service('http_client');
$result = $client->get('http://example.com/entity/node/1', ['Accept' => 'application/json']);
$output = $result->getBody();

$serializer = \Drupal::service('serializer'):
$entity = $serializer->deserialize($output, 'Drupal\node\Entity\Node', $format);
10
Daniel Wehner

HTTP Client Manager モジュールのページから:

Http Client Managerは新しいGuzzleベースのプラグインを導入し、JSONファイルを介してGuzzle Service Descriptionsを使用して、シンプルで効率的な方法でHTTPクライアントを管理できるようにします

2
Sinan Erdem

モジュール「RESTful Webサービス」があります-エンティティやその他のリソースをRESTful Web APIとして公開します。 guzzleは、Drupalコアで使用される標準のhttpclientです。 "RESTful Webサービス"変更されたモジュール " Drupal 7.からのサービスです。これはserviceです。ただし、考え方は同じです。任意のサービスをDrupalサービスとして。

https://www.youtube.com/watch?v=0mTTfCZ8Iac

0
viktor.likin