I am thinking about creating a search engine frontend for a special use case using Drupal 7. There are some modules in the module directory, and questions like Consume SOAP web service in Drupal 7 on SO, but I still am confused.

How is the mapping from external datasets to dynamic Drupal nodes done? For every dataset I retrieve through my service's WSDL interface, I'll need to create a node, a block or anything displayable in Drupal.

Is this even possible within the scope of Drupal's framework?


Yup its possible, PHP is specifically a web based language -- which Drupal is built upon.

For a REST based consuming service client for instance look at the Guzzle drupal community project. There is also the Services Client drupal community module to consume remote web services and uses UUIDs to map/sync fetched data. Your mileage may vary but all the pieces exist within Drupal and PHP. For instance even D7's core drupal_http_request can be used to craft your own HTTP requests, or your underlying PHP's installation CuRL library if you find drupals http function hindered by defaults.

There is also an issue and related sandbox project to add SOAP support to the Feeds drupal community module.

You say SOAP but thats only 1 piece of what can go over the wire. I've had to consume WS-* + SOAP based APIs from Drupal/PHP and I ended up creating XML by hand with CuRL to do it all. There are also libraries such as:


or this library to extend php5 ext/SOAP:


Ultimately understanding the remote API specs, and inter-operating with them from Drupal is on you the developer.

| improve this answer | |
  • Thanks for the links and comments you provided. However, my core question was about the representation of dynamic data in the Drupal framework -- how to dynamically create nodes / blocks from an incoming result set. – jstarek Jun 6 '13 at 6:59

How is the mapping from external datasets to dynamic Drupal nodes done?

Effectively, it's done manually. You can use PHP5's SOAP client, or a third party one, and write your custom integration. There's no generalized module for this task, because each API is different.

The answer you linked to on SO shows the basics.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.