So far, the Changes will look something like this:
- Merge create and update into update_or_create
- object is much advanced now:
- Identifier can be omitted, and data_root in the request is interpreted
- Because of the above one object or several is now possible for update or create
- Create and Update object validation now happens iteratively
- Creates and Updates can be mixed inside a single bulk request
- All modifying actions on the database occur within an all-or-nothing transaction
- Much of the DBIC search parameter munging is properly moved to the RequestArguments Role in the form of a trigger on 'search' to populate 'search_parameters' and 'search_attributes' which correspond directly to ->search($parameters, $attributes);
- Error handling is now much more consistent, using Try::Tiny everywhere possible
- Tests are now modernized and use JSON::Any
- Extending is now explicitly done via Moose method modifiers
- The only portion of the stash in use is to allow runtime definition of create/update_allows
- list is now broken down into several steps:
- row_format_output (which is just a passthrough per row)
This update will bring DBIC::API to the next level in terms of using it as a web service, with more functionality built into the core by default.
If you happen to be attending Frozen Perl 2010, I'll be giving a presentation on Catalyst datagrids, specifically my melding of ExtJS with DBIC::API and how dumb easy it is to hook the two together now (which makes my work life much simpler).
Anyhow, if you are still doing lots of heavy, custom CRUD exposed via web service, I hope this update will make it more appealing to switch to DBIC::API to handle the more mundane parts.