yiiapi/docs/guide/sv/topics.webservice.txt

(开头部分) 7KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

Web Service
===========

[Webbtjänster](http://en.wikipedia.org/wiki/Web_service) (Web Service) är ett 
mjukvarusystem konstruerat för att ge stöd för driftkompatibel (interoperable)
maskin-till-maskin-interaktion över ett nätverk. I en webbapplikations kontext 
refererar det vanligen till en uppsättning API:er som kan kommas åt över internet 
och exekveras på ett fjärrsystem som erbjuder den begärda tjänsten. Till exempel, 
en [Flex](http://www.adobe.com/products/flex/)-baserad klient kan anropa en 
funktion implementerad på serversidan av en PHP-based webbapplikation. 
Webbtjänster förlitar sig på [SOAP](http://en.wikipedia.org/wiki/SOAP) som sitt 
grundläggande lager i kommunikationsprotokollstacken.

Yii tillhandahåller [CWebService] och [CWebServiceAction] för att förenkla 
arbetet med implementering av webbtjänster i en webbapplikation. API:erna 
grupperas klasser, kallade *service providers*. Yii genererar för varje klass en 
[WSDL](http://www.w3.org/TR/wsdl)-specifikation som beskriver vilka API:er som 
finns tillgängliga och hur de skall anropas av klienterna. När en webbtjänst-API 
invokeras av en klient, kommer Yii att instantiera motsvarande service provider 
och anropa den begärda API:n för att fullgöra önskad request.

> Note|Märk: [CWebService] är beroende av  [PHP:s SOAP-
tillägg](http://www.php.net/manual/en/ref.soap.php). Kontrollera att det är 
igång innan exemplen i detta avsnitt provkörs.

Definiera Service Provider
-------------------------

Som nämnts ovan, en service provider är en klass som definierar metoderna som 
kan fjärrinvokeras. Yii förlitar sig på  [doc 
comment](http://java.sun.com/j2se/javadoc/writingdoccomments/) och [class 
reflection](http://php.net/manual/en/book.reflection.php) för att 
identifiera vilka metoder som kan fjärrinvokeras och vilka deras parametrar och 
returvärden är.

Låt oss börja med en enkel aktiekurstjänst. Denna tjänst medger att en klient 
frågar om priset på en viss aktie. Service providern definieras som följer. Lägg 
märke till att vi definierar providerklassen `StockController` genom att ärva 
från och utvidga [CController]. Detta är inte ett krav. Varför vi gör så 
förklaras inom kort.

~~~
[php]
class StockController extends CController
{
	/**
	 * @param string the symbol of the stock
	 * @return float the stock price
	 * @soap
	 */
	public function getPrice($symbol)
	{
		$prices=array('IBM'=>100, 'GOOGLE'=>350);
		return isset($prices[$symbol])?$prices[$symbol]:0;
	    //...return stock price for $symbol
	}
}
~~~

I ovanstående deklarerar vi metoden `getPrice` att vara en webbtjänst-API genom 
后面还有 165 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。