Chamando um RESTful Web Service
Problema:
Uma aplicação ColdFusion precisa chamar um RESTful web service.
Solução:
ColdFusion fornece um modo simples e fácil de chamar RESTful webservices com <cfhttp>.
Explicação detalhada:
Muitas vezes uma aplicação terá acesso a dados de um provedor de terceiros. Um destes provedores podem fornecer dados em um serviço Web RESTful. (Representational State Transfer - http://en.wikipedia.org/wiki/Representational_State_Transfer) Para este exemplo, a aplicação irá utilizar um serviço baseado RESTful HTTP utilizando XML.
Um aplicativo pode ter uma necessidade de verificar se o código postal é correto para a cidade ou estado que um usuário entrou e poderia usar um serviço web para fazer isso. Supondo que o serviço Web tem um método chamado verifyZipCode e exige que um zipcode seja passados pela aplicação, seria necessário construir um pacote XML como o seguinte:
<cfsavecontent variable="verifyZipCodeRequestXML">
<request>
<method>verifyZipCode</method>
<zipCode>46032»</zipCode>
</request>
</cfsavecontent>
O XML que a aplicação constrói dependerá da assinatura XML que o prestador de serviços web requer. A seguir a aplicação terá de fazer um HTTP POST para o URL do serviço Web e passar o pedido, bem como especificar uma variável para armazenar a resposta do serviço.
<cfhttp url="#webServiceURL#" method="POST" result="verifyZipCodeResponse">
<cfhttpparam type="body" value="request=#verifyZipCodeRequestXML#" />
</cfhttp>
A variável resposta, verifyZipCodeResponse, será uma estrutura com as chaves que contém dados sobre o pedido, com a resposta atual do serviço que está sendo trazido na chave FileContent.
A variável FileContent pode conter um XML parecido com este:
<?xml version='1.0' ?>
<response>
<city>Carmel</city>
<state>IN</state>
</response>
A resposta XML será dependente do fornecedor de serviços.
Neste ponto, é simplesmente uma questão de analisar o XML e ter certeza que a cidade e o estado que voltaram do serviço web correspondam-se com a cidade e estado que o usuário entrou no aplicativo.
ColdFusion faz serviços de chamadas RESTful, rápida, fácil e simples!
Versão em inglês: Adobe ColdFusion Cookbook
0 responses to “Chamando um RESTful Web Service”