«

»

Nov 30

Print this Post

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!

by Kevin Schmidt
Versão em inglês: Adobe ColdFusion Cookbook

Permanent link to this article: http://ensina.me/coldfusion/chamando-um-restful-web-service/

Leave a Reply