Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
There are several modules in Drupal that act as Web-service clients. Ideally, we'd only have one, but this page attempts to point them out and highlight some differences. At some point, perhaps for Drupal 8, we'll be able to merge all of these.
Provides extendable API for talking to remote Drupal site via services and UI for configuring connections to remote sites. Module allows to define multiple connections with different attributes to one or multiple sties. Connections can be exported either via hook or using features.
Dependencies
ctools
PHP cURL extension
Architecture
This module aims to create general API for connecting to remote site. To achieve that it uses ctools plugin system. Each connection consits of class with three plugins. API user shouldn't take care of any aspect of creating requests and parsing responses. Each plugin can have own configuration (similar to Feeds module).
Authentication
Ensures that requests to remote site will be authenticated. Currently there are two available methods:
Session authentication
OAauth (requires OAuth api module)
Server
Server plugin formats request for remote services server i.e. REST or XML-RPC. By default module comes with two plugins. Server also parses response from remote Drupal site and translate data from text form to PHP structures. Supported remote servers:
XML-RPC server
REST server (allow to communicate via JSON for example)
The services client module answers that age old question: how do I arbitrarily interface with the services module without having to build a new module from the ground up?
Well, the answer is finally here. Services client is designed to sit on a site and listen for events (currently node save/update and user save/update. It will then push that data up to a Drupal website running services.