Existe alguma(s) boa(s) prática(s) na chamada a um web service? Existe algum padrão que facilita a integração?
Precisarei realizar chamadas a web services em uma aplicação web e em uma aplicação “schedulada”,e queria saber a melhor forma de tratar com essas chamadas.
Por exemplo, um fornecedor me liberou o wsdl do seu web service. Eu utilizarei o wsad para gerar um cliente (as classes proxy e talz…). Mas qual a melhor forma de utilizar esse “cliente”?
Use as classes geradas pelo WSAD como usaria qulquer outra classe.
Se preferir, você pode guardar a config da URL do Web service em um arquivo, ao invés de hardcoded, como a ferramenta gera dentro de alguma das classes.
[quote=danieldestro]Use as classes geradas pelo WSAD como usaria qulquer outra classe.
Se preferir, você pode guardar a config da URL do Web service em um arquivo, ao invés de hardcoded, como a ferramenta gera dentro de alguma das classes.[/quote]
Oi daniel…
Sim, eu posso utilizar as classes geradas. É gerado um service locator, onde eu passo a url. Mas, vamos pensar em um caso: eu tenho vários web services disponíveis, que posso chamar em vários momentos na minha aplicação. Existe algum padrão para agrupar as chamadas a esses web services? Ou criar uma camada entre a minha aplicação e as chamadas?
[quote=danieldestro]Existem vários padrões, mas não têm nada a ver com Web Services especificamente.
Dê uma olhada no Façade.[/quote]
Oi Daniel, estive procurando em alguns sites e li sobre um pattern que poderia se ajustar bem a esse tipo de situação: Service Coordinator. “A integração entre o programa cliente e outros serviços é feita através do coordinator”. Existe uma classe Coordinator que encapsula todos os serviços (no caso, poderia ser sudbividido por funcionalidade), e existe um método onde são apenas chamados os métodos desses serviços.
Você poderia me dar um exemplo de como seria isso em um Facade?