[dancer-users] Issue with plugin_setting

Tony Edwardson tony.edwardson at gmail.com
Thu Aug 3 11:58:50 BST 2017


Hi All

I am trying to write a Dancer2 Plugin to handle OpenAPI (Swagger2) 
configs and I want to configure the plugin via config as usual.
In my config.yml, I have :-

plugins:
      OpenAPI:
          configfile: "openapicfg.yml"

my Dancer2::Plugin::OpenAPI.pm looks like this:-

package Dancer2::Plugin::OpenAPI;

use Dancer2::Plugin;
use Dancer2::Plugin::OpenAPI::Core;
use Data::Dumper;

register OpenAPI => sub {
     my $self = shift;
     my $plugin_conf = plugin_setting();
     print Dumper { pluginconf => $plugin_conf };

     .........
};

and Dancer2::Plugin::OpenAPI::Core has :-

package Dancer2::Plugin::OpenAPI::Core;

use Moo;
use JSON::Validator::OpenAPI;
use Data::Dumper;

has 'apiconfig' => (
     is => 'rw',
     reader => 'get_apiconfig',
     writer => 'set_apiconfig'
);

sub BUILD {
     my $self = shift;
     my $config = shift;
     my $val = JSON::Validator::OpenAPI->new;
     my $url = $config->{url};
     my $spec = $val->load_and_validate_schema($url);
     $self->set_apiconfig($val->schema->data);
     return $self;
}
1;

My App has this :-

package MyApi;
use strict;
use warnings;

use Dancer2;
use Dancer2::Plugin::OpenAPI;

my $apiconfig = OpenAPI->get_apiconfig;

I am using Dancer2 version 0.204001 on Centos 7.3.1611 and Perl 5.16.3

When  I run this - the plugin config is empty
$VAR1 = {
           'pluginconf' => {}
         };

Anyone got any idea what I am doing wrong here ?

Thanks
Tony


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.preshweb.co.uk/pipermail/dancer-users/attachments/20170803/0dc6890c/attachment.html>


More information about the dancer-users mailing list