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 for all entity types (nodes, comments, users, taxonomy terms, ..). It aims to be fully compliant to the REST principles.
#D8CX: I pledge that RESTWS will be obsolete on the day that Drupal 8 is released, because we have REST module in D8 core now!
Features and differences to the Services module:
- Provides only RESTful services (no message-oriented or RPC-style web services like SOAP, XML-RPC etc.).
- Builds upon the Entity API, to provide support for all entity types out of the box.
- Supports CRUD (create, read, update, delete) operations on all entities.
- There are no "service endpoints" to configure as resources are just available at uniform paths like "node/1", "user/1". For that the HTTP Accept headers are respected, so if the client requests JSON instead of HTML, it will get it.
- Querying support to retrieve lists of entities, can also be filtered with GET parameters.
- Currently JSON, XML and RDF/XML are available as resource representation formats, while modules can add more. The RDF format makes use of the RDF mapping core provides, and is read-only.
Which version should I use?
The 7.x-1.x branch is now frozen and will get security fixes only. The 7.x-2.x branch has introduced an important API change regarding the semantics of PUT/POST requests (see) and adds a lot of querying features. If you want to start a new project with RESTWS use the latest 2.x alpha release. If you are running 1.x versions of RESTWS do not upgrade to 2.x without prior testing/adoption of your clients.
This project is sponsored by epiqo. Visit us at epiqo.com or contact us.