agrestio / agrest

Server-side Java REST Framework for easy access to data graphs from various backends
https://agrest.io
Apache License 2.0
80 stars 34 forks source link

New update stage - MAP_CHANGES #503

Closed andrus closed 2 years ago

andrus commented 2 years ago

To implement change filtering per #502, we need to separate "mapping" updates to persistent objects and "merging" updates into those objects. So let's add a new stage to the update pipeline - MAP_CHANGES sitting between APPLY_SERVER_PARAMS and MERGE_CHANGES. The existing merge code should be split into map and merge parts.

Upgrade Notes

Now that we have more precise data about operation types on update, Agrest now would return status 201 instead of 200 for bulk create operations (previously it would only return 201 for single-object create ops). Client code must be aware of this and act accordingly.