Yancy::Backend
version 0.015
my $be = Yancy::Backend->new( $url ); $result = $be->list( $collection, $where, $options ); say "Total: " . $result->{total}; say "Name: " . $_->{name} for @{ $result->{rows} }; $item = $be->get( $collection, $id ); $be->set( $collection, $id, $item ); $be->delete( $collection, $id ); $item = $be->create( $collection, $id, $item );
A Yancy::Backend handles talking to the database. Different Yancy backends will support different databases. To use a backend, see "SUPPORTED BACKENDS". To make your own backend, see "METHODS" for the list of methods you must implement, their arguments, and their return values.
Yancy backends work with collections, which are made up of items. A collection is a set of items, like a database table. An item is a single element of a collection, and must be a hashref.
Yancy::Backend::Pg - Postgres backend
Yancy::Backend::Mysql - MySQL backend
Yancy::Backend::Sqlite - SQLite backend
Yancy::Backend::Dbic - DBIx::Class backend
my $url = 'test://custom_string'; my $be = Yancy::Backend::Test->new( $url, $collections );
Create a new backend object. $url is a string that begins with the backend name followed by a colon. Everything else in the URL is for the backend to use to describe how to connect to the underlying database and any options for the backend object itself.
$url
$collections is a hash reference of collection configuration from the Yancy configuration. Important configuration for the backend to support:
$collections
The name of the ID field for the collection. Defaults to id.
id
The backend name will be run through ucfirst before being looked up in Yancy::Backend::. For example, mysql://... will use the Yancy::Backend::Mysql module.
ucfirst
Yancy::Backend::
mysql://...
my $result = $be->list( $collection, $where, $opt ); # { total => ..., rows => [ ... ] }
Fetch a list of items from a collection. $collection is the collection name. $where is a SQL::Abstract where structure.
$collection
$where
$opt is a hash reference with the following keys:
$opt
limit - The number of rows to return
offset - The number of rows to skip
order_by - A SQL::Abstract order by clause
Returns a hashref with two keys:
An array reference of hash references of item data
The total count of rows that would be returned without limit or offset.
limit
offset
my $item = $be->get( $collection, $id );
Get a single item. $collection is the collection name. $id is the ID of the item to get. Returns a hashref of item data.
$id
$be->set( $collection, $id, $item );
Update an item. $collection is the collection name. $id is the ID of the item to update. $item is the item's data to set. There is no return value.
$item
$item = $be->create( $collection, $item );
Create a new item. $collection is the collection name. $item is the item's data. Returns the item's data after being saved in the database (so, including any defaults or autogenerated data).
$be->delete( $collection, $id );
Delete an item. $collection is the collection name. $id is the ID of the item to delete.
my $schema = $be->read_schema;
Read the schema from the database tables. Returns an OpenAPI schema ready to be merged into the user's configuration.
Doug Bell <preaction@cpan.org>
This software is copyright (c) 2017 by Doug Bell.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Yancy, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Yancy
CPAN shell
perl -MCPAN -e shell install Yancy
For more information on module installation, please visit the detailed CPAN module installation guide.