Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Integração com webservice

Bom dia,

Gostaria de saber se o Watson se integra com chamadas de webservice em formato JSON, o Watson consegui lidar com isso? Se sim, qual recurso dentro da ferramenta eu utilizo para fazer essas chamadas?

Obrigado.

4 respostas

Bom dia Bruno,

não sei se entendi seu ponto da melhor forma, mas no caso de integrar o Assistant com um webservice, ainda não há algo automático na plataforma. Então seria uma integração padrão com a API REST para fazer as chamadas para o serviço aceitando e respondendo com JSON normalmente.

E, dentro do serviço, o que dá para fazer com JSON é passar nomes e valores para a camada de aplicação (ou outro serviço) como descrevemos nesta parte do curso que servem para, por exemplo, chamamos alguma função (ou processo) e depois retornarmos a resposta para o próprio diálogo.

Caso você queira algo um pouco mais automático do que lidar com APIs, tem um middleware chamado Botkit que pode testar (eu mesma ainda não usei). E também o Openwhisk que sei que muita gente estava gostando para integrar vários serviços.

Veja se te esclarece, qualquer coisa só voltar aqui o/.

Boa tarde Cássia, tudo bem?

Obrigado pelo retorno.

Vou explicar melhor o meu cenário: Eu vou ter dentro do meu BOT uma funcionalidade onde o cliente poderá solicitar a segunda via de um boleto. Ou seja, eu primeiro vou ter que autenticar o cliente com o usuário e senha dele, e através disso ele vai poder gerar a segunda via. A duvida é a seguinte, como que dentro do "dialog" eu faço requisições AJAX para uma uma URL via POST passando informações e tratando o retorno do response dentro do "dialog"? . Ficou um pouco mais claro o meu cenário? rsrsrs

O serviços já tenho criado, só preciso que de alguma maneira eu consiga chamar esses serviços via POST.

abs

Imagina Bruno, :)

se esse é o cenário, é legal dar uma olhada na parte que citei do curso ou na documentação sobre variáveis de contexto do json. Fiz uma busca rápida e achei esse exemplo de código também, caso ajude.

O dialog não processa esse tipo de requisição dentro dele (talvez numa decisão de separação de responsabilidades da arquitetura) ele lida apenas com as perguntas, respostas, e tudo o que estiver contido numa conversa. Logo, não tem como tratar isso ali dentro, só na camada de aplicação mesmo.

Quando digo camada de aplicação, é aquilo que esteja usando esse serviço, um site, por exemplo. Você também pode criar um app no IBM Cloud só para servir esse meio de campo.

Então, para a requisição, você vai criar uma variável de contexto no nó responsável por essa autenticação, receber essa variável onde vai fazer a requisição Ajax para o serviço (algum arquivo do seu site, por exemplo), mandar o post, pegar o retorno e mandar de volta para o Watson.

Ainda, sobre o ajax, tem um detalhe, talvez o serviço possa não aceitar, por causa do problema de cross-origin, mas não tenho certeza. Faça um teste, caso dê erro, sugiro trocar para cURL, uma API em python, node ou java, o que achar melhor.

Espero ter respondido :p.

solução!

Bom dia Cássia,

Perfeito, agora deu uma mega esclarecida :). Eu já estou usando o watson em um site, vou ver agora como passar as informações do site para a variável de contexto dentro do BOT. Obrigado mais uma vez. E parabéns pelas aulas ;)

abs