use 5.38.0; package Dancer2::Serializer::JsonApi; use Dancer2::Plugin::JsonApi::Registry; use Dancer2::Serializer::JSON; use Moo; has content_type => ( is => 'ro', default => 'application/vnd.api+json' ); with 'Dancer2::Core::Role::Serializer'; has registry => ( is => 'rw', default => sub { Dancer2::Plugin::JsonApi::Registry->new } ); has json_serializer => ( is => 'ro', default => sub { Dancer2::Serializer::JSON->new } ); sub serialize { my ( $self, $data ) = @_; return $self->json_serializer->serialize( $self->registry->serialize(@$data) ); } sub deserialize { ... } 1;