Podemos ter em algum momento a necessidade de consumir um serviço rest dentro de um fluxo de uma API para obter informações adicionais que serão utilizados na chamada.
Com esta necessidade podemos construir um interceptor JavaScript que irá utilizar a classe $http para realizar uma chamada rest para o serviço.
Abaixo temos um exemplo de chamada sendo realizada e utilizando um header passado na chamada original.
try {
//Url do serviço da chamada
var url = 'https://suaurl.com';
//header que vem da chamada original do fluxo que sera repassado para o serviço interno
var headerRequest = $call.request.getHeader("headerRequest");
//exemplo de post com body -> var chamada_manager = $http.post(url, header, body);
//header que será enviado para o serviço consumido
var header = {
"Content-Type": "application/json",
"Teste-Header": "Hteste",
"headerRequest": headerRequest
};
//executado a chamada para o endereço cadastrado e o retorno armazenado na variável chamada
var chamada = $http.get(url, header);
//exibindo no trace (debug) o retorno da chamada para o serviço
$console.debug("Resposta da chamada: ", chamada);
//finaliza o código de exemplo terminando a chamada
$call.decision.setAccept(false);
$call.stopFlow = true;
$call.response = new com.sensedia.apigateway.services.ApiResponse();
$call.response.setStatus(200);
$call.response.setHeader("Content-type", "application/json");
$call.response.getBody().setString($json.stringify(chamada), "utf-8");
} catch (e) {
$call.stopFlow = true;
$call.response = new com.sensedia.apigateway.services.ApiResponse();
$call.response.setStatus(500);
$call.response.setHeader("Content-type", "plain/text");
$call.response.getBody().setString(e.toString(), "utf-8");
}
Com o exemplo acima aplicado no cenário em especifico que está desenvolvendo basta manipular o retorno que se encontra na variável "chamada" e aplicar no fluxo conforme sua necessidade.
Comentários
0 comentário
Por favor, entre para comentar.