yiiapi/docs/guide/pt_br/topics.webservice.txt
(开头部分) 7KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
Web Service
===========
[Web service](http://pt.wikipedia.org/wiki/Web_service) é um sistema
de software projetado para suportar interações máquina-máquina
interoperáveis através de uma rede. No contexto de aplicações Web
geralmente refere-se a um conjunto de APIs que podem ser acessadas
através da Internet e executadas em um sistema remoto que hospeda
o serviço solicitado. Por exemplo, um cliente baseado em
[Flex](http://www.adobe.com/products/flex/), poderá chamar uma função
implementada no lado do servidor rodando uma aplicação Web baseada em
PHP. Web Service se baseia em [SOAP](http://pt.wikipedia.org/wiki/SOAP)
como a camada principal da pilha de protocolo de comunicação.
O Yii fornece as classes [CWebService] e [CWebServiceAction] para simplificar o trabalho
de implementação de Web Service em uma aplicação Web. As APIs são agrupadas
dentro de classes chamadas de *prestadores de serviço*. O Yii irá gerar para
cada classe uma especificação [WSDL](http://www.w3.org/TR/wsdl) que descreve
quais APIs estão disponíveis e como elas devem ser chamadas pelo cliente.
Quando uma API é chamada por um cliente, o Yii irá instanciar o prestador de
serviço correspondente e chamar a API requisitada para executar a requisição.
> Note|Nota: A classe [CWebService] é depende da [Extensão PHP
SOAP](http://www.php.net/manual/en/ref.soap.php). Tenha certeza que
você possui ela habilitada antes de testar os exemplos disponíveis
nesta seção.
Definindo um Prestador de Serviço
-------------------------
Como mencionado acima, o prestador de serviços é uma classe que define os
métodos que podem ser chamados remotamente. O Yii se baseia em [comentários
de documentação](http://java.sun.com/j2se/javadoc/writingdoccomments/) e
[reflexão de classes](http://php.net/manual/en/book.reflection.php) para
identificar quais métodos podem ser chamados remotamente e quais são os seus
parâmetros e valores retornados.
Vamos iniciar com um simples serviço de cotação de ações. Este serviço
permite uma requisição de um cliente para cotar uma ação específica.
Definimos o prestador de serviços como a seguir. Note que definimos a classe
prestadora de serviço `StockController` como extensão de [CController]. Isto
não é obrigatório. Explicaremos mais adiante por que fazemos dessa forma.
~~~
[php]
class StockController extends CController
{
/**
* @param string símbolo da ação
* @return float preço da ação
* @soap
*/
public function getPrice($symbol)
{
$prices=array('IBM'=>100, 'GOOGLE'=>350);
return isset($prices[$symbol])?$prices[$symbol]:0;
//...retorna o preço da ação para o $symbol
}
}
~~~
后面还有 167 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
