Thursday, October 5, 2017

SOAP WDSL using php

Easiest way to create SOAP API using PHP.

Download  :   http://www.nusphere.com/php_script/nusoap.htm


SERVER.PHP


require_once('lib/nusoap.php');
include('function.php');

$server = new nusoap_server;

$server->configureWSDL('server', 'urn:server');

$server->wsdl->schemaTargetNamespace = 'urn:server';

//SOAP complex type return type (an array/struct)
$server->wsdl->addComplexType(
    'Person',
'complexType',
'struct',
'all',
'',
array(
'id_user' => array('name' => 'id_user', 'type' => 'xsd:int'),
'fullname' => array('name' => 'fullname', 'type' => 'xsd:string'),
'email' => array('name' => 'email', 'type' => 'xsd:string'),
'level' => array('name' => 'level', 'type' => 'xsd:int')
)
);

//first simple function
$server->register('hello',
            array('username' => 'xsd:string'), //parameter
            array('return' => 'xsd:string'), //output
            'urn:server', //namespace
            'urn:server#helloServer', //soapaction
            'rpc', // style
            'encoded', // use
            'Just say hello'); //description

//this is the second webservice entry point/function
$server->register('login',
            array('username' => 'xsd:string', 'password'=>'xsd:string'), //parameters
            array('return' => 'tns:Person'), //output
            'urn:server', //namespace
            'urn:server#loginServer', //soapaction
            'rpc', // style
            'encoded', // use
            'Check user login'); //description

            //SOAP complex type return type (an array/struct)
$server->wsdl->addComplexType(
    'asstele',
'complexType',
'struct',
'all',
'',
array(
        'cnt' => array('name' => 'cnt', 'type' => 'xsd:integer'),
        'cStat' => array('name' => 'cStat', 'type' => 'xsd:integer')
)
);
//this is the second webservice entry point/function
$server->register('assigntele',
            array('branch' => 'xsd:integer'), //parameters
            array('return' => 'tns:asstele'), //output
            'urn:server', //namespace
            'urn:server#assignteleServer', //soapaction
            'rpc', // style
            'encoded', // use
            'data assign tele'); //description

//$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
//$server->service($HTTP_RAW_POST_DATA);
$server->service(file_get_contents("php://input"));

?>











FUNCTION.PHP


//first function implementation
function hello($username) {
return 'Howdy, '.$username.'!';
}

//second function implementation
function login($username, $password) {
//should do some database query here
// .... ..... ..... .....
//just some dummy result
return array(
'id_user'=>1,
'fullname'=>'John Reese',
'email'=>'john@reese.com' ,
'level'=>99
);
}

function assigntele($branch){
$conn = new mysqli('host','user','password','database');
if ($conn->connect_error) {
die("Connection error: " . $conn->connect_error);
}
$var=array();
$result = $conn->query("select count(lm.mobile) as cnt from lead_master lm where lm.branch=".$branch);
while($obj = mysqli_fetch_object($result)) {
$var[] = $obj;
}
return $var;
}
?>

No comments:

Post a Comment

Dharamart.blogspot.in