2015-01-20 64 views
0

我正在使用Wunderground API,並且正在努力構建我的骨幹應用程序。我根據緯度/經度發出POST請求,然後獲取一堆位置(ids和一個鏈接),我可以在另一個POST請求中使用它來獲取實際的天氣數據。JSON API與骨幹鏈接

我在想我可能想要兩種模式:位置和天氣,它們都會接收不同的數據。也許有更好的方法來解決這個問題(也許解析)。

下面是位置的位置API:

{ 
response: { 
version: "0.1", 
termsofService: "http://www.wunderground.com/weather/api/d/terms.html", 
features: { 
geolookup: 1 
} 
}, 
location: { 
type: "CITY", 
country: "US", 
country_iso3166: "US", 
country_name: "USA", 
state: "CA", 
city: "San Francisco", 
tz_short: "PST", 
tz_long: "America/Los_Angeles", 
lat: "37.790000", 
lon: "-122.390000", 
zip: "94126", 
magic: "1", 
wmo: "99999", 
l: "https://stackoverflow.com/q/zmw:94126.1.99999", 
requesturl: "US/CA/San_Francisco.html", 
wuiurl: "http://www.wunderground.com/US/CA/San_Francisco.html", 
nearby_weather_stations: { 
airport: { 
station: [ 
{ 
city: "Oakland", 
state: "CA", 
country: "US", 
icao: "KOAK", 
lat: "37.71780014", 
lon: "-122.23294067" 
}, 
{ 
city: "San Francisco", 
state: "CA", 
country: "US", 
icao: "KSFO", 
lat: "37.61960983", 
lon: "-122.36557770" 
}, 
{ 
city: "Hayward", 
state: "CA", 
country: "US", 
icao: "KHWD", 
lat: "37.65891647", 
lon: "-122.12174988" 
}, 
{ 
city: "Half Moon Bay", 
state: "CA", 
country: "US", 
icao: "KHAF", 
lat: "37.51361084", 
lon: "-122.49958801" 
} 
] 
}, 
pws: { 
station: [ 
{ 
neighborhood: "NOS_PORTS Pier 1, CA", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "MPXOC1", 
lat: 37.798, 
lon: -122.392975, 
distance_km: 0, 
distance_mi: 0 
}, 
{ 
neighborhood: "SOMA South Park", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR327", 
lat: 37.782135, 
lon: -122.393753, 
distance_km: 0, 
distance_mi: 0 
}, 
{ 
neighborhood: "South of Market", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR314", 
lat: 37.779007, 
lon: -122.394188, 
distance_km: 1, 
distance_mi: 0 
}, 
{ 
neighborhood: "Weather Underground HQ", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR236", 
lat: 37.793293, 
lon: -122.404442, 
distance_km: 1, 
distance_mi: 0 
}, 
{ 
neighborhood: "South Beach", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR349", 
lat: 37.777248, 
lon: -122.392944, 
distance_km: 1, 
distance_mi: 0 
}, 
{ 
neighborhood: "South of Market", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR355", 
lat: 37.776611, 
lon: -122.39399, 
distance_km: 1, 
distance_mi: 0 
}, 
{ 
neighborhood: "SOMA", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR231", 
lat: 37.782803, 
lon: -122.407166, 
distance_km: 1, 
distance_mi: 1 
}, 
{ 
neighborhood: "SOMA", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR131", 
lat: 37.778488, 
lon: -122.408005, 
distance_km: 2, 
distance_mi: 1 
}, 
{ 
neighborhood: "Telegraph Hill", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR169", 
lat: 37.804367, 
lon: -122.40757, 
distance_km: 2, 
distance_mi: 1 
}, 
{ 
neighborhood: "North Beach", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR137", 
lat: 37.799515, 
lon: -122.412498, 
distance_km: 2, 
distance_mi: 1 
}, 
{ 
neighborhood: "North Beach", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR337", 
lat: 37.803802, 
lon: -122.409508, 
distance_km: 2, 
distance_mi: 1 
}, 
{ 
neighborhood: "SoMa", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR328", 
lat: 37.77359, 
lon: -122.411018, 
distance_km: 2, 
distance_mi: 1 
}, 
{ 
neighborhood: "NEMA", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR291", 
lat: 37.776077, 
lon: -122.417542, 
distance_km: 2, 
distance_mi: 1 
}, 
{ 
neighborhood: "Mission District", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR326", 
lat: 37.767326, 
lon: -122.408096, 
distance_km: 2, 
distance_mi: 1 
}, 
{ 
neighborhood: "SOMA - Near Van Ness", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR58", 
lat: 37.773285, 
lon: -122.417725, 
distance_km: 3, 
distance_mi: 1 
}, 
{ 
neighborhood: "Mission District", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR335", 
lat: 37.763035, 
lon: -122.412949, 
distance_km: 3, 
distance_mi: 2 
}, 
{ 
neighborhood: "Aquatic Park Entrance Light 1", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR359", 
lat: 37.812, 
lon: -122.421204, 
distance_km: 3, 
distance_mi: 2 
}, 
{ 
neighborhood: "Mission (at Bar and Burrito)", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR142", 
lat: 37.76553, 
lon: -122.422913, 
distance_km: 3, 
distance_mi: 2 
}, 
{ 
neighborhood: "The Mission, 19th and Folsom", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR259", 
lat: 37.759354, 
lon: -122.415085, 
distance_km: 4, 
distance_mi: 2 
}, 
{ 
neighborhood: "The Mission: Even the weather is hip", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR79", 
lat: 37.754234, 
lon: -122.411728, 
distance_km: 4, 
distance_mi: 2 
}, 
{ 
neighborhood: "Marina District", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR350", 
lat: 37.799656, 
lon: -122.439316, 
distance_km: 4, 
distance_mi: 2 
}, 
{ 
neighborhood: "Pacific Heights", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR166", 
lat: 37.789127, 
lon: -122.441307, 
distance_km: 4, 
distance_mi: 2 
}, 
{ 
neighborhood: "Drew School", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR155", 
lat: 37.787407, 
lon: -122.442177, 
distance_km: 4, 
distance_mi: 2 
}, 
{ 
neighborhood: "Pacific Heights", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR339", 
lat: 37.787582, 
lon: -122.444481, 
distance_km: 4, 
distance_mi: 2 
}, 
{ 
neighborhood: "The Castro", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR354", 
lat: 37.767139, 
lon: -122.437416, 
distance_km: 4, 
distance_mi: 2 
}, 
{ 
neighborhood: "Treasure Island L6", 
city: "San Francisco", 
state: "CA", 
country: "US", 
id: "KCASANFR360", 
lat: 37.833248, 
lon: -122.372498, 
distance_km: 5, 
distance_mi: 3 
} 
] 
} 
} 
} 
} 

回答

0

我建議你存儲在主模型中的所有數據和寫干將像任何特別的需要:

// this goes inside the model defitionition 
getNearbyStations: function(){ 
    return new Backbone.Collection(this.get('location').nearby_weather_stations); 
} 

一般應該有不同的REST API端點來獲取數據,但在這種情況下,當您獲取所有批量數據時,我看不到很多選項。

所以,作爲一個使用情況,您可以去算賬說:

var location = new LocationModel(); 
// after the stations are loaded ... 
var myLocations = location.getNearbyStations(); // will return the collection defined above