it-swarm.com.de

Wie konsumiere ich REST als Client?

Ich muss Informationen zum Speichern auf einem Knoten von einem Drittanbieter importieren REST Server) und diese Daten einer Entität zuordnen, die auf den gespeicherten Knoten verweist. Auf dem Knoten befindet sich ein Feld, in das der Benutzer ein eingeben kann ID, die in der URL des Aufrufs REST] übergeben wird. Der Aufruf REST] gibt ein XML-Objekt zurück, das einer neuen Entität zugeordnet werden muss, auf die verwiesen wird zum Knoten.

Wie wird das gemacht? Gibt es Beispiele für Drupal 7 Module, die dies tun?

5
Adam S

Normalerweise rolle ich nur meine eigenen.

Ich benutze eine Kombination aus drupal_http_build_query und drupal_http_request , um die Anfrage zu stellen. Ich verwende dann drupal_json_decode , um JSON-Ergebnisse zu analysieren, oder simplexml_load_string , um XML-Ergebnisse zu analysieren.

Wenn möglich, versuche ich, all dies in eine PHP Klasse als Singleton zu abstrahieren, die auch statisches Caching und/oder enthält Caching über cache_set / cache_get für die eigentlichen Anfragen. Ich werde dann alles als normales Drupal Modul) abschließen.

Ausnahmslos hat der Service, den ich in Anspruch nehme, etwas Seltsames, das die Verwendung einer generischen Lösung ausschließt. Außerdem finde ich die generischen Lösungen nicht einfacher als eine benutzerdefinierte.

10
mpdonadio

Sie können auch das Modul Web Service Clients verwenden. Es passt perfekt zum Konsumieren von drupal Services Modul, kann aber auch mit anderen REST API) verwendet werden.

1
sunzu

Haben Sie sich REST Client angesehen? Es ist (derzeit) nicht für die Produktion gedacht, aber ein guter Ausgangspunkt, wenn Sie drupal_http_request nicht nur für die API verwenden möchten, auf die Sie zugreifen.

0
forest