65 lines
1.4 KiB
Plaintext
65 lines
1.4 KiB
Plaintext
|
|
=head1 DESCRIPTION
|
|
|
|
Defines a type of object to serialize/deserialize from/to the
|
|
JSON:API format.
|
|
|
|
=head1 ATTRIBUTES
|
|
|
|
=head2 registry
|
|
|
|
L<Dancer2::Plugin::JsonApi::Registry> to use to find the definition of
|
|
other object types.
|
|
|
|
=head2 before_serialize
|
|
|
|
Accepts a function, which will be called on the original C<$data> to serialize
|
|
to groom it.
|
|
|
|
before_serialize => sub($data,$xtra) {
|
|
# lowercase all keys
|
|
return +{ pairmap { lc($a) => $b } %$data }
|
|
}
|
|
|
|
=head2 type
|
|
|
|
The JSON:API object type. Read-only, required.
|
|
|
|
=head2 id
|
|
|
|
Key to use as a reference to the object. Can be a string,
|
|
or a function that will be passed the original data object.
|
|
Read-only, defaults to the string C<id>.
|
|
|
|
=head2 links
|
|
|
|
Links to include as part of the object.
|
|
|
|
=head2 top_level_links
|
|
|
|
Links to include to the serialized top level, if the top level object
|
|
is of the type defined by this class.
|
|
|
|
=head2 top_level_meta
|
|
|
|
Meta information to include to the serialized top level, if the top level object
|
|
is of the type defined by this class.
|
|
|
|
=head2 relationships
|
|
|
|
Relationships for the object type.
|
|
|
|
=head2 allowed_attributes
|
|
|
|
List of attributes that can be serialized/deserialized.
|
|
|
|
=head1 METHODS
|
|
|
|
=head2 top_level_serialize($data,$extra_data = {})
|
|
|
|
Serializes C<$data> as a top-level JSON:API object.
|
|
|
|
=head2 serialize_data($data,$extra_data)
|
|
|
|
Serializes the inner C<$data>.
|