Why not adopt me?
NAME
WebAPI::DBIC::Resource::JSONAPI
VERSION
version 0.004002
NAME
WebAPI::DBIC::Resource::JSONAPI - JSON API support for WebAPI::DBIC
Media Type
These roles respond to the application/vnd.api+json
media type.
JSONAPI
The JSON API media type is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, and discoverability.
See http://jsonapi.org/ for more details.
Development of JSON API support for WebAPI::DBIC has stalled due to instability of the specification as it moves towards an official 1.0 release. See, for example, https://github.com/json-api/json-api/issues/159#issuecomment-70675184
For Ember, https://github.com/kurko/ember-json-api can be used as an adaptor but has it's own set of issues. I'd recommend using WebAPI::DBIC::Resource::ActiveModel instead.
Roles
The WebAPI::DBIC::Resource::JSONAPI::Role::DBIC role provides core methods required to support the other roles listed below.
The WebAPI::DBIC::Resource::JSONAPI::Role::Set and WebAPI::DBIC::Resource::JSONAPI::Role::Item roles handle GET and HEAD requests for set (resultset) and item (row) resources.
The WebAPI::DBIC::Resource::JSONAPI::Role::SetWritable role handles POST requests to set (resultset) resources. It handles the recursive creation of related records. Related records can be nested to any depth and are created from the bottom up within a transaction.
The WebAPI::DBIC::Resource::JSONAPI::Role::ItemWritable roles handle PUT and DELETE requests for item (row) resources. It handles the recursive update of related records. Related records can be nested to any depth and are updated from the bottom up within a transaction. Handles both 'PUT is replace' and 'PUT is update' logic.
There's no JSONAPI specific handling for invoking methods on resources yet. You can use the generic WebAPI::DBIC::Resource::Role::ItemInvoke or WebAPI::DBIC::Resource::Role::SetInvoke role.
AUTHOR
Tim Bunce <Tim.Bunce@pobox.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2015 by Tim Bunce.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.