-
-
28 Mar 2010 15:04:39 UTC
- Distribution: WSDL-Compile
- Module version: 0.03
- Source (raw)
- Browse (raw)
- Changes
- How to Contribute
- Issues (1)
- Testers (186 / 173 / 0)
- Kwalitee
Bus factor: 0- % Coverage
- License: perl_5
- Activity
24 month- Tools
- Download (17.07KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
++ed by:2 non-PAUSE users- Dependencies
- unknown
- Reverse dependencies
- CPAN Testers List
- Dependency graph
NAME
WSDL::Compile - Compile SOAP WSDL from your Moose classes.
SYNOPSIS
# Name of your WebService: Example # Op stands for Operation # Your method is CreateCustomer # # Request - what you expect to receive package Example::Op::CreateCustomer::Request; use Moose; use MooseX::Types::XMLSchema qw( :all ); use WSDL::Compile::Meta::Attribute::WSDL; has 'FirstName' => ( metaclass => 'WSDL', is => 'rw', isa => 'xs:string', required => 1, xs_minOccurs => 1, ); has 'LastName' => ( metaclass => 'WSDL', is => 'rw', isa => 'xs:string', required => 1, xs_minOccurs => 1, ); has 'Contacts' => ( metaclass => 'WSDL', is => 'rw', isa => 'ArrayRef[Example::CT::Contact]', xs_maxOccurs => undef, ); # Response - that's what will be sent back package Example::Op::CreateCustomer::Response; use Moose; use MooseX::Types::XMLSchema qw( :all ); use WSDL::Compile::Meta::Attribute::WSDL; has 'CustomerID' => ( metaclass => 'WSDL', is => 'rw', isa => 'xs:int', required => 1, xs_minOccurs => 1, ); # Fault - class that defines faultdetails package Example::Op::CreateCustomer::Fault; use Moose; use MooseX::Types::XMLSchema qw( :all ); use WSDL::Compile::Meta::Attribute::WSDL; has 'Code' => ( metaclass => 'WSDL', is => 'rw', isa => 'xs:int', ); has 'Description' => ( metaclass => 'WSDL', is => 'rw', isa => 'xs:string', ); # CT stands for ComplexType # So you can have more complex data structures package Example::CT::Contact; use Moose; use MooseX::Types::XMLSchema qw( :all ); use WSDL::Compile::Meta::Attribute::WSDL; has 'AddressLine1' => ( metaclass => 'WSDL', is => 'rw', isa => 'xs:string', ); has 'AddressLine2' => ( metaclass => 'WSDL', is => 'rw', isa => 'Maybe[xs:string]', ); has 'City' => ( metaclass => 'WSDL', is => 'rw', isa => 'xs:string', ); # below could be put in a script package main; use strict; use warnings; use WSDL::Compile; my $gen = WSDL::Compile->new( service => { name => 'Example', tns => 'http://localhost/Example', documentation => 'Example Web Service', }, operations => [ qw/ CreateCustomer / ], ); my $wsdl = $gen->generate_wsdl(); print $wsdl;
Please take a look at example/ directory and/or tests for more details.
ATTRIBUTES
namespace
Namespace for SOAP classes.
service
Hashref with following elements:
name
Name of web service
tns
Target namaspace
documentation
Description of web service
operations
Arrayref of all operations available in web service
FUNCTIONS
generate_wsdl
Compile a WSDL file based on the classes. Returns string that you should save as .wsdl file.
build_messages
Builds wsdl:message.
build_portType
Builds wsdl:portType.
build_binding
Builds wsdl:binding.
build_service
Builds wsdl:service.
build_definitions
Builds wsdl:definitions.
build_documentation
Builds wsdl:documentation.
build_types
Builds wsdl:types.
AUTHOR
Alex J. G. Burzyński,
<ajgb at cpan.org>
BUGS
Please report any bugs or feature requests to
bug-wsdl-compile at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=WSDL-Compile. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.COPYRIGHT & LICENSE
Copyright 2009 Alex J. G. Burzyński.
This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License.
Module Install Instructions
To install WSDL::Compile, copy and paste the appropriate command in to your terminal.
cpanm WSDL::Compile
perl -MCPAN -e shell install WSDL::Compile
For more information on module installation, please visit the detailed CPAN module installation guide.