Ik ben nu enkele dagen bezig om een Soap API/Webservice op te zetten, maar vooralsnog zonder succes.
Het framework voor de website die ik gebruik is CodeIgniter, en voor soap gebruik ik NuSoap.
Dit is het stuk source van de Soap SERVER:
class Api extends Globals{
public function __construct(){
parent::__construct();
ini_set('soap.wsdl_cache_enabled', '0');
ini_set('soap.wsdl_cache_ttl', '0');
$this->load->library("nuSoap_lib");
$server = new soap_server();
$this->server = $server;
$server->configureWSDL("My API", $this->http . $this->site . '/api/');
$server->schemaTargetNamespace = $this->http . $this->site . '/api/';
$server->wsdl->addComplexType(
"user",
"complexType",
"struct",
"all",
"SOAP-ENC:struct",
array(
"user" => array("name" => "user", "type" => "xsd:struct")
)
);
$server->register(
"gallery.get_user",
array(),
array("return" => "tns:user"),
"urn:GalleryWSDL",
"urn:GalleryWSDL#getUser",
"rpc",
"encoded",
"Returns the information of a certain member"
);
}
public function index(){
function get_user(){
$user = array(
'field1' => 'value1',
'field2' => 'value2',
'field3' => 'value3'
);
return $user;
}
$this->server->service(file_get_contents("php://input"));
}
}
Dit is het stuk source van de CLIENT
$soap = new SoapClient($this->http . $this->site . '/api?wsdl', array('cache_wsdl' => WSDL_CACHE_NONE));
if ($access){
$user = $soap->__call('get_user',array());
print_r($user);
}
De get_user functie is functioneel maar doet niet wat ik wil. De $user variabele die een array/object terug zou moeten krijgen, blijft helaas leeg, of geeft alleen het woord 'Array' terug.
Wie kan mij hier mee helpen?