我在寫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的鬆散打字讓我對返回類型使用了糟糕的設計,我需要使用別的東西?
歡迎任何建議。