The Web Services and Context Core Initiative (WSCCI) aims to transform Drupal from a first-class CMS to a first-class REST server with a first-class CMS on top of it. To do that, we must give Drupal a unified, powerful context system that will support smarter, context- sensitive, easily cacheable block-centric layouts and non-page responses using a robust unified plugin mechanism.
Be sure to read the roadmap overview.
Code can be found in the WSCCI sandbox.
Hot issues
Active issues where we need help:
- Drupal Kernel Patch: This is priority one, based on Symfony2.
- Use Symfony2 session handling: We'll need to improve Symfony2 a bit in the process, too.
- WebSockets: How do we do that in PHP? Or do we?
Key discussions
Important discussions for background:
Recent discussions
WSCCI Scrum Notes 06/11/12
Scrum notes
Read moreProposal for RESTful entity API
The other week, I posted a call for feedback about the viability of using PUT for Drupal entities as part of a REST implementation. We had a number of concerns, relating to how hooks and revisioning impact the idempotence requirements of PUT.
We had a fair bit of feedback and some good discussion, and even some input from the co-editor of the HTTP 2.0 specification, Julian Reschke. In short, hooks are not a problem, revisions are not a problem, forward-revisions are a problem we can work around.
Based on that discussion, ongoing discussions elsewhere, and a few offline conversations, I propose the following strategy for handling REST operations on entities in Drupal 8.
Read moreA RESTful entity web API for Drupal 8
tl;dr: klausi will help to work on a Drupal 8 core rest.module (name is work in progress) that exposes entities as RESTful web service resources.
I'm happy to announce that I will join the WSCCI initiative to help develop web service interfaces in Drupal 8. Big thanks to my team at epiqo for sponsoring and making time for me to work on this, as well as Acquia for providing a crucial financial part to make this happen.
Read moreTwo JSON-LDs for Drupal
It looks like we will require two different serializations of JSON-LD. The current proposal is to serve them with two different media types:
- application/ld+json
- application/vnd.drupal.ld+json
You can weigh in on the decision of how to negotiate between the two.
Why do we need two?
Read morePNW Summit WSCCI Sprint
I will be hosting a WSCCI Sprint at the PNW Summit this year. I'll be spending pretty much the entire summit in the coder lounge working on WSCCI issues so please come and join me so we can push this most awesome initiative through!
There's a lot of work left to do on WSCCI, and the best way to get it done is sustained application of skilled knowledge. (Vis, let's get to coding!)
For planning purposes, if you're going to be at the summit please RSVP on this event and post below, indicating what you're interested in working on.
Read moreBADCamp WSCCI Sprint
I will be hosting a WSCCI Sprint at BADCamp this year. By that I mean I'll be camped out in the coder lounge from Friday 2 November through Sunday 4 November working on WSCCI. Come keep me company and let's rock this thing!
There's a lot of work left to do on WSCCI, and the best way to get it done is sustained application of skilled knowledge. (Vis, let's get to coding!)
For planning purposes, if you're going to be at BADCamp please RSVP on this event and post below, indicating what you're interested in working on.
Read moreRESTWS for Drupal 8
You may know RESTWS, a Drupal 7 module that exposes any entity as web service API. As soon as you enable it you can create, read, update and delete (CRUD) + query any entity type in JSON and XML. Take a look at the README.txt for further explanation.
Read moreThe push towards JSON-LD support in Drupal
As Larry talked about in his WSCCI Web Services Format Sprint Report, we want Drupal 8 to be able to serialize data "for consumption by remote programs (either other Drupal sites as in the case of content staging, other non-Drupal sites, client-side applications, or mobile apps)".
Read moreAnatomy of a complex path
There's a lot of discussion about routing going around, and to help clarify it, I'm putting together this example of a complex-but-reasonable case for the set of determinations a Drupal 8 site may need to make in order to fully resolve to a single router. I'm hoping that such an example will help bound the discussion and allow us to tease apart the appropriate separation of concerns for the remaining challenges we face.
Read more



