Я пишу веб-службу PHP и одну функцию. Я хочу настроить веб-сервис на PHP. Мне нужно создать описание WSDL для этой веб-службы, чтобы оно было доступно из I.e. визуальная студия. Он принимает документы / строки поиска в качестве входных данных и рекомендует аналогичные документы в качестве выходных данных. Я возвращаю массив с первым элементом resultCode (int), который показывает, была ли операция успешной (1) или неудачной (0). Второй элемент, однако, может быть либо сообщением об ошибке (строкой), сообщающим пользователю, что пошло не так, либо сложным возвращаемым типом, таким как массив с подэлементами для различных совпадающих статей, т. е. array( array("heading"=>" заголовок статьи", "articleId"=>12345, "text"=>"основной текст статьи"), array( ... ), ... ). Мне нужно знать, как сгенерировать/записать WSDL для этого возвращаемого типа или как это сделать в NuSOAP. Как бы Вы это сделали?
Это часть кода, который я сейчас использую для настройки сервиса.
$server->wsdl->addComplexType(
'returnStructBase',
'complexType',
'struct',
'all',
'',
array('resultCode' => array('name'=>'resultCode', 'type'=>'xsd:int'),
'resultData' => array('name'=>'resultData', 'type'=>'xsd:anyType')
)
);
$server->wsdl->addComplexType(
'returnStructArray',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
array('ref' => 'SOAP-ENC:arrayType',
'wsdl:arrayType' => 'tns:returnStructBase[]'
)
),
'tns:returnStructArray'
);
$server->register("GetRecommendations", array('username'=>'xsd:string', 'password'=>'xsd:string','articleId'=>'xsd:string',
'text'=>'xsd:string', 'returnText'=>'xsd:boolean'), array('return'=>'tns:returnStructArray'), $namespace, $namespace . '#getRecommendations', 'rpc', 'encoded', ' ... ');
Может быть, свободная типизация PHP заставила меня использовать плохой дизайн для возвращаемого типа, и мне нужно использовать что-то еще?
Любые рекомендации приветствуются.