Problem/Motivation
Supporting the development of Single Page Applications (SPA) on Drupal 8 requires the confluence of several sub-systems: REST, AJAX, routing, Views.
Complex client-side features and applications will only become more prevalent into the future. We want to be the go-to CMS that drives data to these applications. To this end, we need to ensure that the required sub-systems are sufficiently feature-rich to draw front end developers to Drupal.
This issue is a meta tracking issue for all of the sub-issues that we need to address.
Remaining tasks
Issues should be added for any component that is not available or complete. Please note if a sub-system is fully supported. Linking to an example is even better.
Entities
- Complete model.
- Linked entities
Supported HTTP methods
- CREATE
- GET
- Raw value is returned.
- Text filters are applied. These are for security purposes.
- Doesn’t return the effect of field formatters. Field formatters are meant to build the HTML display
- Configuration is not returned through REST. The thought was that contrib would build out this capability.
- POST
- UPDATE/PATCH
- DELETE
- PUT
- Missing??
Validation
- Field validation
- Entity validation - is this different from field validation?
- Form validation
Cacheing
There’s no way of knowing if an entity was updated: #2044583: Add an Updated Time field to all entities
#2005644: Provide the user ID and permissions hash to allow JavaScript to maintain client-side caches
TWIG template support
Punted. Folks will want to use their pet templating system.
Views
GET is available, no other methods.
Authorization
- Basic Auth
- HTTP Auth
- Cookies
- OAuth
CORS headers
Do we need to support these in Core?
List requests
How do we get the list of comments for an entity?
API changes
Perhaps necessary, but untenable at this point in Drupal 8.