Weather Undergroundサービスを使用して、AJAXリクエストを第三者サービスに送信する方法を示します。このサービスは、REST API(http://www.wunderground.com/weather/api/d/docsで文書化されています)を提供しますが、通常のAJAXリクエスト(XMLHttpRequestを使用)を使用してこのAPIにアクセスすることは不可能です。これは、ブラウザがjavascriptコードに"Same Origin Policy"を適用するためです。幸いにも、WireCloudは、この問題に対処するためのMashupPlatform.http.makeRequestメソッドを提供しています。このAPIにアクセスするには、次のコードを使用します:
var getForecastByCoord = function getForecastByCoord(coord, onSuccess, onError) {
var url;
if ((typeof onSuccess !== 'function') || (typeof onError !== 'function')) {
throw new TypeError();
}
url = 'http://api.wunderground.com/api/' + API_KEY + '/conditions/forecast/q/';
url += coord.lat + ',' + coord.lon;
url += '.json';
MashupPlatform.http.makeRequest(url, {
method: 'GET',
onSuccess: function (response) {
var forecast_data;
forecast_data = JSON.parse(response.responseText);
if (forecast_data.error) {
onError();
} else {
onSuccess(forecast_data);
}
},
onError: function () {
onError();
}
});
};
getForecastByCoord関数は、適切なリクエストをWeather Undergroundに送信し、その結果をonSuccessコールバックに渡します。