NAME

Kelp::Module::Raisin - Raisin integration with Kelp

SYNOPSIS

# in config - order matters
modules => [qw(Symbiosis Raisin)],
modules_init => {
	# optional
	Symbiosis => {
		mount => '/path', # will mount Kelp under /path
	},

	# required
	Raisin => {
		mount => '/api', # will mount Raisin under /api
		class => 'My::Raisin', # required - full class name of Raisin app
	},
},

# in application's build method
$self->raisin->add_route(
	method => 'GET',
	path => '/from-kelp',
	params => {},
	code => sub { 'Hello World from Kelp, in Raisin!' },
);

# in psgi script
$app = MyKelpApp->new;
$app->run_all;

DESCRIPTION

This is a very straightforward module that integrates the Kelp framework with the Raisin API framework using Kelp::Module::Symbiosis. See the documentation for Kelp::Module::Symbiosis and Kelp::Module::Symbiosis::Base for a full reference on how this module behaves.

MODULE INFORMATION

This module name is 'raisin'. You can refer to it with that name in Symbiosis methods - loaded and mounted. There shouldn't be a need to, since it will be mounted automatically if you specify "mount" in configuration.

The module class itself does not expose anything particularly interesting, it is just a wrapper for Raisin.

METHODS INTRODUCED TO KELP

raisin

my $raisin = $kelp->raisin;

Returns the running instance of Raisin.

CONFIGURATION

middleware, middleware_init

Same as "middleware, middleware_init" in Kelp::Module::Symbiosis::Base. Since Raisin can wrap itself in its own middleware it will likely not be that useful.

mount

See "mount" in Kelp::Module::Symbiosis::Base for details.

class

Should be a full name of the package that defines an api using Raisin::API. Keep in mind that Raisin::API is really a singleton so it is not suitable for multiple app setup.

SEE ALSO

AUTHOR

Bartosz Jarzyna, <bbrtj.pro@gmail.com>

COPYRIGHT AND LICENSE

Copyright (C) 2020 - 2022 by Bartosz Jarzyna

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.