#35822 closed defect (bug) (maybelater)
Add support for PATCH method to REST API infrastructure
Reported by: |
|
Owned by: | |
---|---|---|---|
Milestone: | Priority: | normal | |
Severity: | normal | Version: | 4.4 |
Component: | REST API | Keywords: | |
Focuses: | Cc: |
Description
The REST API infrastructure in Core presently does not support a JSON format for the body of PATCH
requests. Supporting PATCH
requests is a dependency for implementing Customizer transactions (#30937), where there will be a customize_transaction
post type which contains a JSON blog of the dirty settings representing the Customizer state. Each change to a setting should result in a PATCH
request to push the newly-dirty setting value into the dirty settings already in the customize_transaction
post, as opposed to having to re-post the entire array of dirty settings with each request.
I understand that PATCH
requests in the wild today commonly just include the sparse values that should be applied to the existing resource, but that the proper way to implement PATCH
is to require that an explicit diff data format be used in the request body, such as a list of add, change, remove operations with a JSON path/pointer to apply to a resource (RFC 6902). Should JSON Patch (application/json-patch+json
) be required for PATCH
requests or should an informal sparse JSON object (application/json
) be acceptable?
IMO, we should close this as maybelater. The API can already handle PATCH requests, you just need to handle the patch format yourself in the endpoints. I think we should work out how we want JSON Patch operations to work first before we roll it into the infrastructure; the customiser provides a good place to do that and experiment.
Right now, something like this should already work: