server pro webové služby (webservices) – SOAP, WSDL, XSD

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
2bfree
Člen | 248
+
0
-

Zdravím,
chystám se psát jednu aplikaci, která by měla sloužit jako server webových služeb. Za tímto účelem tedy potřebuji vystavit soubor WSDL a XSD. Tento však potřebuji „generovat“ a to ideálně přes šablonovací systém, abych do těchto souborů mohl automaticky vkládat například url adresu serveru.

Chci se zeptat, zda-li existuje nějaká „lepší“ cesta, nežli mít prázdný presenter a k němu šablonu a následně upravený bootstrap.php tak, aby přeroutoval „soubor.wsdl“ a „soubor.xsd“ na tento presenter?

Příjde mi to jako děsuplná spatlanina, ale lepší mě nenapadá.

Ondřej Mirtes
Člen | 1536
+
0
-

Předně bych si napsal WsdlResponse (implementující IPresenterResponse), která ti zaobalí generování toho souboru. V konstruktoru ji můžeš předat cokoli, z čeho pak uvnitř ní dokážeš vygenerovat to výsledné XML (nebo co je to vlastně za formát). Podívej se do frameworku např. na implementaci DownloadResponse, abys viděl, jak jednoduše to funguje.

Poté si v tom WsdlPresenteru vytvoříš metodu render a v ní ukončíš běh presenteru právě pomocí té WsdlResponse. Nějakou šablonou se nemusíš zabývat, protože životní cyklus presenteru k ní už nedoběhne (zkrátka už něco, co pošle na výstup, má).

public function renderDefault()
{
	$this->terminate(new WsdlResponse($data));
}