2015-01-20 12 views
0

Wunderground API를 사용하고 있으며 백본 앱을 구조화하는 방법에 어려움을 겪고 있습니다. 위도/경도를 기반으로 POST 요청을 한 다음 다른 POST 요청에서 실제 날씨 데이터를 가져올 수있는 여러 위치 (ID 및 링크)를 가져옵니다.백본과 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