Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Como fasso para vincular um WebService no meu Site ?
Bem não sei muito sobre esse WebService. Unica coisa que sei é para mostrar os Ramais do Pessoal aqui.
Falando Nome, Telefone, Local, Setor.
Tenho que fazer isso para o Joomla, meu chefe disse que tenho que montar um arquivo em PHP e XML para fazer esse serviço.
_______________________________________________________
Dei uma olhada em alguns codigos assim:
http://orleans.curitiba.pr.gov.br/listatelefonica/ListaTelefonica.asmx?op=PesquisarTelefone
Os codigos estão com um texto "string". Nessa string tenho que pegar uma coisa especifica do WebService ?
Desculpe-me mas não sei muito de PHP
Certo, você quer um webservice para consultar sua agenda telefônica ? Você sabe como funciona um servidor Soap ?
Enfim .. vamos lá. Criei o Webservice, junto do seu diagrama, talvez te ajude, talvez não, mas ... isso é contigo. O Service.wsdl, ficou assim:
/applications/core/interface/imageproxy/imageproxy.php?img=http://static.mbiosinformatica.com.br/WebService.jpg&key=b6a5e59caa435502211f7b0f62c96ec8fe73d0ddf2cd5ec4f7a9d74e5911c98a" alt="WebService.jpg" />
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="Service"
targetNamespace="http://www.example.org/Service/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://www.example.org/Service/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/Service/">
<xsd:element name="getClientes">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="NomeInput" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getClientesResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="NomeOutput" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="getClientesRequest">
<wsdl:part name="getClientes" type="xsd:string"></wsdl:part>
</wsdl:message>
<wsdl:message name="getClientesResponse">
<wsdl:part name="NomeOutput" type="xsd:string"></wsdl:part>
</wsdl:message>
<wsdl:portType name="getClientesPortType">
<wsdl:operation name="getClientes">
<wsdl:input message="tns:getClientesRequest"></wsdl:input>
<wsdl:output message="tns:getClientesRequest"></wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="getClientesBinding" type="tns:getClientesPortType">
<wsdl:operation name="getClientes">
<soap:operation soapAction="getClientesAction" />
<wsdl:input>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</wsdl:input>
<wsdl:output>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Clientes">
<wsdl:port name="getClientes" binding="tns:getClientesBinding">
<soap:address location="http://127.0.0.1/iMasters/SoapServer.php" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
No caso, esse webservice, foi criado apenas pra demonstrar como funciona.
Depois, criei o SoapServer.php, com o seguinte conteúdo.
<?php
class ClientesSoapServer{
/**
* Recupera os dados de um cliente
* Pelo seu nome atual registrado no sistema
* @param String $Nome
*/
public function getClientes( $Nome ){
if( !is_null( $Nome ) ){
return $Nome;
}
}
}
$SoapServer = new SoapServer( 'http://127.0.0.1/iMasters/Service.wsdl' );
$SoapServer->setClass( 'ClientesSoapServer' );
$SoapServer->handle();
Então, esse método getClientes, no caso você pode implementar uma consulta ao banco, retornar os dados do array se o nome for compatível, buscar em um arquivo XML etc... no caso, só estou retornando o valor passado por parâmetro no método.
Depois, criei o SoapClient.php, no caso o script que faz a requisição pro wsdl.
<?php
$SoapClient = new SoapClient( 'http://127.0.0.1/iMasters/Service.wsdl' );
echo $SoapClient->getClientes( 'Andrey Knupp Vital' );
Saída:
Andrey Knupp Vital
Ele ser um WebService feito em .NET muda alguma coisa ou todos são assim ?
______EDITADO________________
Sobre o que você colocou eu entendi bem pouco...
Mas já entendi alguma coisa.
Para eu conseguir isso tenho que ter os dados do Banco de Dados ?
Não, pode ser do TXT, XML .. isso é contigo, pode ser em asmx também, não sei se é em .NET
Então teria que pegar o "item" do que procuro e colocar na string ?
Como se eu quizer pegar o caractere Nome de uma Banco de Dados.
Minha maior duvida e que nesses codigos:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<PesquisarTelefone xmlns="http://www.ici.curitiba.org.br/webservices/">
<Nome>string</Nome>
<Sigla>string</Sigla>
<TipoPesquisa>string</TipoPesquisa>
</PesquisarTelefone>
</soap:Body>
</soap:Envelope>
<?xml version="1.0" encoding="utf-8"?> <PesquisarTelefoneResponse xmlns="http://www.ici.curitiba.org.br/webservices/">
<PesquisarTelefoneResult>
<Contato>
<Nome>string</Nome>
<Orgao>string</Orgao>
<Lotacao>string</Lotacao>
<Telefone>string</Telefone>
<LotacaoDescricao>string</LotacaoDescricao>
</Contato>
<Contato>
<Nome>string</Nome>
<Orgao>string</Orgao>
<Lotacao>string</Lotacao>
<Telefone>string</Telefone>
<LotacaoDescricao>string</LotacaoDescricao>
</Contato>
</PesquisarTelefoneResult>
</PesquisarTelefoneResponse>
</soap:Body>
</soap:Envelope>
A string eu teria que mudar para o caminho dos "itens" no Banco de Dados ?
Meu chefe me deu esses codigos de um Tutorial, so que o Tutorial não fala nada sobre isso...
Mas tambem nem tenho ideia de como usar esse codigo. Eu suspeito de coloca-lo num xml, mas ai como eu varia para chamar os "itens" do Banco de Dados.
A FONTE: http://orleans.curitiba.pr.gov.br/listatelefonica/ListaTelefonica.asmx?op=PesquisarTelefone
Como assim ? o que tem o Soap Env ? você fala, do usuário mandar um XML com os dados do produto, ou valores da pesquisa, em um arquivo ou string xml ?
Bem eu tenho que fazer um espaço de Pesquiza que dai ele vincularia com um WebService e Traria os Dados.
Como está no link que mandei. Mas tenho que fazer isso com o PHP.
Resumindo: Tenho que pegar dados de um WebService com PHP.
Ah certo, então basta você armar o Soap Client com o PHP, e extrair os dados .. foi mal, entendi que você queria um Webservice parecido para integrar com seu site. Esse link que você mandou, está com erro.
Agradeço a ajuda, e eu que tenho que me desculpar por não ter explicado da maneira certa.
Bem darei uma olhada como se faz um Soap Client com PHP. E qualquer duvida voutarei aqui.
Obrigado por avisa que o link está errada.
Novamente Obrigado.
______________EDITADO___________________________________________
Bem um SoapClient necessita de um SoapServer ?
Nopz, o cliente apenas envia as requisições Soap, isso serve pra vários tipos de webservice. O Soap server apenas recebe as requisições, como também possibilita o retorno ao cliente. Você não viu o exemplo que eu dei acima ?
Opa, me esqueci dele...
Vou dar mais uma olhada nele, pelo motivo de ter esquecido alguns fatos...
______EDITADO_________
Seu exemplo é de um Soap Server ?
______EDITADO_2_______
Não entendi direito seu exemplo de SoapServer, ele vai ver os nomes igual no Banco de dados ?
______EDITADO_3_______
Poderia pegar seu exemplo e colocar num formulario html ? Ou um estilo de busca ?
______EDITADO_4_______
Aquele Service.wsdl tem que ser criado para so um SoapClient ?
Depende de qual Webservice, geralmente existem instruções de como tratar os dados deste webservice