Nasıl birden TÜRLERİ döndüren PHP fonksiyon için WSDL beyan?

2 Cevap php

I'm writing a PHP web service and one function. I want to set up a web service in PHP. I need to generate the WSDL description for this web service so it's accessible from I.e. visual studio. It takes documents / search strings as inputs and recommends similar documents as output. I return an array with a first element resultCode (int) which shows if the operation was a success (1) or a failure (0). The second element, however, could either be an error message (string) which tells the user what went wrong, or a complex return type like an array with subelements for the different matching articles, i.e. array( array("heading"=>"article heading", "articleId"=>12345, "text"=>"body text of article"), array( ... ), ... ). I need to know how to generate/write the WSDL for that return type or how to do that in NuSOAP. How would you do that?

Bu benim şu anda hizmet kurmak için kullanıyorum kod kısmı.

$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', ' ... ');

Belki PHP'nin gevşek yazarak bana bir dönüş türü için kötü bir tasarım kullanmak yaptı ve ben başka bir şey kullanmak gerekir?

Herhangi bir öneriler bekliyoruz.

2 Cevap

Sen could kullanmak xsd:anytype. Türü tabanlı ortamlarda ister beri Aslında ben, değil tavsiye ederim. NET ve Java wsdl ele almak mümkün olmayacaktır.

Temiz bir çözüm elde etmek için ben bu tasarım php sizi baştan yeniden düşünmek ... ;) ediyorum

Sen dönebilirsiniz

  • Birinci eleman: Hata kodu, 0 = kötü, 1 = iyi
  • İkinci unsur: biz iyi olup olmadığını Hata mesajı, boş
  • Üçüncü unsur: Karmaşık tipi, biz kötü isek boş bir.