NAME

XML::Compile::SOAP::Daemon::PSGI - PSGI based application

INHERITANCE

XML::Compile::SOAP::Daemon::PSGI
  is a XML::Compile::SOAP::Daemon

XML::Compile::SOAP::Daemon::PSGI
  is a Plack::Component

SYNOPSIS

#### have a look in the examples directory!
use XML::Compile::SOAP::Daemon::PSGI;
my $daemon = XML::Compile::SOAP::Daemon::PSGI->new;

# initialize definitions from WSDL
my $wsdl    = XML::Compile::WSDL11->new(...);
$wsdl->importDefinitions(...); # more schemas
$daemon->operationsFromWSDL($wsdl, callbacks => ...);

# generate PSGI application
my $app = $daemon->to_app;
$app;

DESCRIPTION

This module handles the exchange of SOAP messages via PSGI stack, using Plack toolkit. This module was contributed by Piotr Roszatycki.

This abstraction level of the object (code in this pm file) is not concerned with parsing or composing XML, but only worries about the HTTP transport specifics of SOAP messages.

Extends "DESCRIPTION" in XML::Compile::SOAP::Daemon.

METHODS

Extends "METHODS" in XML::Compile::SOAP::Daemon.

Constructors

Extends "Constructors" in XML::Compile::SOAP::Daemon.

XML::Compile::SOAP::Daemon::PSGI->new(%options)
-Option            --Defined in                --Default
 accept_slow_select  XML::Compile::SOAP::Daemon  <true>
 output_charset      XML::Compile::SOAP::Daemon  'UTF-8'
 postprocess                                     undef
 preprocess                                      undef
 soap_action_input   XML::Compile::SOAP::Daemon  {}
 wsa_action_input    XML::Compile::SOAP::Daemon  {}
 wsa_action_output   XML::Compile::SOAP::Daemon  {}
accept_slow_select => BOOLEAN
output_charset => STRING
postprocess => CODE

When defined, the CODE will get called with a Plack::Request and Plack::Response objects after processing SOAP message.

preprocess => CODE

When defined, the CODE will get called with a Plack::Request object before processing SOAP message.

soap_action_input => HASH|ARRAY
wsa_action_input => HASH|ARRAY
wsa_action_output => HASH|ARRAY

Attributes

Extends "Attributes" in XML::Compile::SOAP::Daemon.

$obj->addSoapAction(HASH|PAIRS)

Inherited, see "Attributes" in XML::Compile::SOAP::Daemon

$obj->addWsaTable( <'INPUT'|'OUTPUT'>, [HASH|PAIRS] )

Inherited, see "Attributes" in XML::Compile::SOAP::Daemon

$obj->outputCharset()

Inherited, see "Attributes" in XML::Compile::SOAP::Daemon

Running the server

Extends "Running the server" in XML::Compile::SOAP::Daemon.

$obj->call($env)

Process the content of a single message. Not to be called directly.

$obj->process($client, $xmlin, $request, $action)

Inherited, see "Running the server" in XML::Compile::SOAP::Daemon

$obj->run(%options)

The same as to_app but accepts additional preprocess and postprocess options.

$obj->to_app()

Converts the server into a PSGI $app.

Preparations

Extends "Preparations" in XML::Compile::SOAP::Daemon.

$obj->addHandler($name, $soap, CODE)

Inherited, see "Preparations" in XML::Compile::SOAP::Daemon

$obj->operationsFromWSDL($wsdl, %options)

Inherited, see "Preparations" in XML::Compile::SOAP::Daemon

$obj->setWsdlResponse( $filename, [$filetype] )

Inherited, see "Preparations" in XML::Compile::SOAP::Daemon

Helpers

Extends "Helpers" in XML::Compile::SOAP::Daemon.

$obj->faultInvalidXML($error)

Inherited, see "Helpers" in XML::Compile::SOAP::Daemon

$obj->faultNotSoapMessage($nodetype)

Inherited, see "Helpers" in XML::Compile::SOAP::Daemon

$obj->faultUnsupportedSoapVersion($env_ns)

Inherited, see "Helpers" in XML::Compile::SOAP::Daemon

$obj->handlers( <'SOAP11'|'SOAP12'|$soap> )

Inherited, see "Helpers" in XML::Compile::SOAP::Daemon

$obj->printIndex( [$fh] )

Inherited, see "Helpers" in XML::Compile::SOAP::Daemon

$obj->soapVersions()

Inherited, see "Helpers" in XML::Compile::SOAP::Daemon

DETAILS

Extends "DETAILS" in XML::Compile::SOAP::Daemon.

Operation handlers

Extends "Operation handlers" in XML::Compile::SOAP::Daemon.

Returning errors

Extends "Returning errors" in XML::Compile::SOAP::Daemon.

How to use the PSGI module

The code and documentation for this module was contributed by Piotr Roszatycki in March 2012.

Go to the examples/mod_perl/ directory which is included in the distribution of this module, XML::Compile::SOAP::Daemon There you find a README describing the process.

Using Basic Authenication

[example contributed by Emeline Thibault]

my $daemon = XML::Compile::SOAP::Daemon::PSGI->new(...);
$daemon->operationsFromWSDL($wsdl, callbacks => {...});

use Plack::Middleware::Auth::Basic;
my %map = ( admin => "password" );
builder {
  enable "Auth::Basic", authenticator => \&cb;
  $daemon;
};

sub cb {
  my ( $username, $password ) = @_;
  return $map{$username} && $password eq $map{$username};
}

SEE ALSO

This module is part of XML-Compile-SOAP-Daemon distribution version 3.15, built on December 23, 2022. Website: http://perl.overmeer.net/CPAN/

LICENSE

Copyrights 2007-2022 by [Mark Overmeer <markov@cpan.org>]. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://dev.perl.org/licenses/