Async-Microservice
view release on metacpan or search on metacpan
lib/Async/MicroserviceReq.pm view on Meta::CPAN
package Async::MicroserviceReq;
use strict;
use warnings;
use 5.010;
our $VERSION = '0.08';
use Moose;
use namespace::autoclean;
use URI;
use AnyEvent::IO qw(aio_load);
use Try::Tiny;
use JSON::XS;
use Plack::MIME;
use MooseX::Types::Path::Class;
use Future::AsyncAwait;
use Log::Any qw($log);
use HTTP::Negotiate qw(choose);
use Scalar::Util qw(weaken);
our $json = JSON::XS->new->utf8->pretty->canonical;
our @no_cache_headers =
( 'Cache-Control' => 'private, max-age=0', 'Expires' => '-1' );
our $pending_req = 0;
has 'method' => ( is => 'ro', isa => 'Str', required => 1 );
has 'headers' => ( is => 'ro', isa => 'Object', required => 1 );
has 'path' => ( is => 'ro', isa => 'Str', required => 1 );
has 'content' => ( is => 'ro', isa => 'Str', required => 1 );
has 'json_content' => (
is => 'ro',
isa => 'Ref',
required => 0,
lazy => 1,
builder => '_build_json_content'
);
has 'params' => ( is => 'ro', isa => 'Object', required => 1 );
has 'plack_respond' => (
is => 'rw',
isa => 'CodeRef',
required => 0,
clearer => 'clear_plack_respond'
);
has 'static_dir' =>
( is => 'ro', isa => 'Path::Class::Dir', required => 1, coerce => 1 );
has 'base_url' => (
is => 'ro',
isa => 'URI',
required => 1,
lazy => 1,
builder => '_build_base_url'
);
has 'want_json' => (
is => 'ro',
isa => 'Bool',
required => 1,
lazy => 1,
builder => '_build_want_json'
);
has 'jsonp' => (
is => 'ro',
isa => 'Str',
required => 1,
);
has 'using_frontend_proxy' => (
is => 'ro',
isa => 'Bool',
default => 0,
);
has 'pending_ref' => (
is => 'ro',
( run in 0.926 second using v1.01-cache-2.11-cpan-39bf76dae61 )