Я пишу веб-сервис PHP и одну функцию. Я хочу настроить веб-сервис на PHP. Мне нужно сгенерировать описание WSDL для этого веб-сервиса, чтобы оно было доступно из I.e. визуальная студия. Он принимает документы / строки поиска в качестве входных данных и рекомендует аналогичные документы в качестве выходных данных. Я возвращаю массив с первым элементом resultCode (int), который показывает, была ли операция успешной (1) или неудачной (0). Вторым элементом, однако, может быть либо сообщение об ошибке (строка), которое сообщает пользователю, что пошло не так, либо сложный тип возврата, такой как массив с подэлементами для различных соответствующих статей, т.е.
массив (массив ("заголовок" => "заголовок статьи", "articleId" => 12345, "текст" => "основной текст статьи"), массив (...), ...). Мне нужно знать, как сгенерировать / записать 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 заставила меня использовать неверный дизайн для возвращаемого типа, и мне нужно использовать что-то еще?
Любые рекомендации приветствуются.