web-dev-qa-db-fra.com

Comment consommer REST en tant que client?

Je dois importer sur le nœud des informations de sauvegarde d'un tiers REST et mapper ces données à une entité qui fait référence au nœud enregistré. Il y aura un champ dans le nœud que l'utilisateur pourra saisir un id qui est passé dans l'url de l'appel REST. L'appel REST renverra un objet XML qui doit être mappé à une nouvelle entité référencée) au nœud.

Comment cela se fait-il? Existe-t-il des exemples de Drupal 7 modules qui font cela?

5
Adam S

Normalement, je lance juste le mien.

J'utilise un combo drupal_http_build_query et drupal_http_request pour faire la demande. J'utilise ensuite drupal_json_decode pour analyser les résultats JSON, ou simplexml_load_string pour analyser les résultats XML.

Lorsque cela est possible, j'essaie de résumer tout cela dans une classe PHP en tant que singleton , qui comprend également mise en cache statique et/ou mise en cache via cache_set / cache_get pour les requêtes réelles. Je vais ensuite tout récapituler comme un module normal Drupal.

Invariablement, le service que je consomme aura quelque chose d'étrange à ce sujet qui empêche d'utiliser une solution générique. De plus, je ne trouve pas les solutions génériques plus simples qu'une solution personnalisée.

10
mpdonadio

Vous pouvez également utiliser le module Web Service Clients . C'est une correspondance parfaite lors de la consommation à partir du module drupal Services mais il peut également être utilisé avec d'autres API REST.

1
sunzu

Avez-vous regardé Client REST ? Ce n'est pas pour une utilisation en production (actuellement) mais c'est un bon point de départ si vous ne voulez pas simplement utiliser drupal_http_request contre l'API que vous utilisez.

0
forest