2014-01-09 4 views
0

У меня есть api, что я хотел бы вернуться к пользователю, как только сообщение будет получено apigee. Не ждите ответа от моего сервиса. Вы знаете, как это сделать, используя apiee api proxy?Apigee Api proxy - как сделать асинхронный вызов

+1

Попробуйте создать прокси-сервер Node.js, в котором вы можете вернуть немедленный (асинхронный) ответ и затем отправить другой запрос. – brandonscript

+0

Спасибо за ответ. На данный момент я создал js как ресурс с get() до моего адресата и привязал его к моей конечной точке. После этого я подключил raisefault, чтобы как можно быстрее вернуться к пользователю, и так далее, как я вижу около 8 мс для ответа. Однако я проверю node.js, как вы предложили @ r3mus, поскольку, похоже, это может быть правильное решение, а не так «хакерская работа», как я. – Kaszaq

ответ

0

Поскольку у вас есть свобода настройки API с помощью Node.js. Вы можете использовать это для реализации асинхронного поведения в вашем api proxy.

Для получения дополнительной информации о настройке API, с помощью Node.js посетите следующий ссылка- http://apigee.com/docs/api-services/content/developing-nodejs-applications-apigee-edge

1

Я считаю, что вы пробовали первоначальный правильный подход Kaszaq с использованием HTTPClient Получа. Как это было описано в Apigee Docs.

http://apigee.com/docs/api-services/content/javascript-object-model

https://github.com/apigee/api-platform-samples/blob/master/sample-proxies/async-callout/apiproxy/resources/jsc/callout.js

И да, если вы хотите получить более надежное решение попробовать Node.js.

// 
// Make 5 HTTP callouts to Yahoo weather to get the weather for 5 cities 
// The calls are all asynchronous and execute in parallel 
// httpClient returns an exchange object that will contain the HTTP response. . . when it arrives 
// 

var paloAlto = httpClient.get('http://weather.yahooapis.com/forecastrss?w=2467861'); 
context.session['paloAlto'] = paloAlto; 

var anchorage = httpClient.get('http://weather.yahooapis.com/forecastrss?w=2354490'); 
context.session['anchorage'] = anchorage; 

var honolulu = httpClient.get('http://weather.yahooapis.com/forecastrss?w=2423945'); 
context.session['honolulu'] = honolulu; 

var newyork = httpClient.get('http://weather.yahooapis.com/forecastrss?w=2459115'); 
context.session['newyork'] = newyork; 

var dublin = httpClient.get('http://weather.yahooapis.com/forecastrss?w=560743'); 
context.session['dublin'] = dublin; 
Смежные вопросы