我在写PHP Web服务和一个函数。我想在PHP中设置一个Web服务。我需要为这个Web服务生成WSDL描述,因此可以从Ie访问它。视觉工作室。它将文档/搜索字符串作为输入并推荐与输出类似的文档。我返回一个带有第一个元素resultCode(int)的数组,该数组显示操作是成功(1)还是失败(0)。然而,第二个元素可能是一个错误消息(字符串),它告诉用户哪里出错了,或者是一个复杂的返回类型,如具有不同匹配项目的子元素的数组,例如 array(array(“heading”=> “article heading”,“articleId”=> 12345,“text”=>“文章正文”),array(...),...)。我需要知道如何为该返回类型生成/写入WSDL,或者如何在NuSOAP中执行该操作。你会怎么做?如何声明返回多个TYPES的PHP函数的WSDL?
这是我目前用来设置服务的一些代码。
$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的松散打字让我对返回类型使用了糟糕的设计,我需要使用别的东西?
欢迎任何建议。