Serialization module: (de)serializing data to/from JSON & more

The Serialization module is included in Drupal 8 core.

It is built on top of the Symfony Serializer component.

The Serialization module provides a framework to add additional serialization formats simply by installing additional modules. Drupal 8 core's HAL module adds support for HAL+JSON, the CSV serialization contrib module adds CSV support.

Comparison of Web-service client modules

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.

Feed Import - import multiple XML files with xinclude

Sometimes you have to import two or more xml files in the same way. There are several possibilities: creating a feed configuration for every xml file, creating a PHP function that uses Feed Import API or,
you can take a different approach by using xml xinclude.

Why? Because you'll have to maintain just one feed configuration and you can do this only from UI.
When? Usually when the xml files have the same structure.
How? Pretty simple, using xml XInclude.

Serialization API

The Serialization API is new in Drupal 8. It is largely based on the Symfony Serializer component, so their documentation is also relevant.

For high-level information on what this module does, see the Serialization module documentation.

 Symfony documentation.

API features

Ordered by most to least frequently used APIs:

RESTful Web Services

RESTWS exposes Drupal resources (e.g. entities) as RESTful web services. The module makes use of the Entity API and the information about entity properties (provided via hook_entity_property_info()) to provide resource representations.

It aims to be fully compliant to the REST principles.

Installing the Module

  • Copy the whole restws directory to your modules directory (e.g. DRUPAL_ROOT/sites/all/modules) and activate the RESTful Web Services module.
  • Use Drush commands: drush dl restws & drush en restws
  • There is no user interface to configure.

Usage / Testing

To obtain the JSON representation of an entity use your browser to visit:<entity type name>/<entity id>.json
For example: or would resolve as a JSON dump to client. There are no "service endpoints" to configure as resources are just available at uniform paths like "node/1", "user/1". One can use a client in the form of a browser plugin to test out the different CRUD functions.


Subscribe with RSS Subscribe to RSS - xml