Ola pessoal, eu preciso realizar consultas em um ambiente onde a aplicação é SOAP
Sabem me dizer como eu posso fazer este tipo de conversão na consulta?
Ola pessoal, eu preciso realizar consultas em um ambiente onde a aplicação é SOAP
Sabem me dizer como eu posso fazer este tipo de conversão na consulta?
Olá, @Torres. Existem formas nativas e não-nativas de consumir API. A forma nativa é usando APIs do tipo REST, com retorno em JSON. Porém também é possível integrar com APIs SOAP ou GRAPHQL de forma não-nativa, para isso:
Para usar o retorno de uma API Soap na Weni plataforma, será preciso usar um serviço terceiro, como Back4app (serviço de nuvem que pode hospedar um código Node JS), criando um código Node JS para converter esse retorno XML para JSON usando uma função Javascript.
Sendo assim, nos fluxos você deverá consumir a API do Back4app para ter seu retorno em JSON. É uma solução normalmente considerada complexa, pois é necessário que você tenha conhecimento Javascript para criar esse código.
Vou te deixar um código de exemplo aqui e você pode personalizar e até mesmo usar o ChatGPT para te ajudar a criar um código caso você tenha dificuldades:
Parse.Cloud.define(“conversao”, async function (request, response) {
try {
//Importações
const axios = require(‘axios’)
const parseString = require(‘xml2js’).parseStringPromise;// Variáveis da chamada const { user, senha } = request.params // Dados da chamada const data = `CORPO DA REQUISIÇÃO SOAP` // Opções da chamada const options = { method: 'post', url: 'URL DA REQUISIÇÃO SOAP', headers: { 'Content-Type': 'text/xml' }, data: data }; // Chama a API e aguarda a resposta const apiResponse = await axios.request(options) // Converte a resposta da API para um objeto JS const result = await parseString(apiResponse.data) // Extrai o valor do BOLETO const boleto = result['soap:Envelope']['soap:Body'][0].ObterBoletoHomepayResponse[0].RetornoBoleto[0].BOLETO // Retorna o valor do BOLETO response.success(boleto)
} catch (error) {
console.log(error);
response.error(error)
}
})
const boleto é um exemplo, você precisará navegar no retorno SOAP para encontrar o parâmetro que deseja
Outro detalhe é que se você for usar o Back4app, você deve configurar o servidor com essas especificações:
App Settings > Server Settings > Core Settings > Settings > Parse Version 2.8.4
Te ajudei? Se sim, marca como solução