Получение статистики сезона с Falcor
Как лучше всего подходить к получению статистики спортивного сезона с помощью Falcor и маршрутизатора Falcor?
Мой источник данных для сезона выводит данные, которые выглядят так:
{ id: 'recNMJfs4sqiJshna',
fields: {
Wins: 23,
Losses: 51,
Team: [ 'reckEYqAz3r8pUtUg' ],
...
}
Мои идентификаторы - это гиды, и у меня работает маршрут teamById, который возвращает руководство сезона. Однако, чтобы попытаться предотвратить множество дублирующих маршрутов и кода, я пытаюсь создать маршрут seasonsIndex, который бы выглядел примерно так:
seasonIndex[0..10][year] or [seasonIndex[0..10]["2016"]
Где я могу выбрать данные, которые находятся в источнике данных сезона за определенный год. Надеюсь, я могу создать вывод, как это:
seasonIndex: {
teamGuid: {
2016: {
Wins: 23,
Losses: 51,
...
},
2015: {
...
}
},
...
},
teamById: {
teamGuid: {
Name: Team Name
}
}
У меня проблемы с выяснением маршрутов, которые мне понадобятся для построения этой модели ответа. Потому что я не уверен, как извлечь данные из источника данных другого сезона и связать их с уникальными руководящими указаниями команды, и при этом иметь возможность ссылаться на конкретные значения в данных сезона, такие как выигрыши, поражения или процент выигрышей.
1 ответ
Вам нужно построить маршрут по полю, которое вы хотите выставить. Например, для wins
поле:
{
route: "seasonIndex[{keys:teams}][{keys:years}].wins",
get(pathSet) {
const results = []
for (team of pathSet.teams) {
for (year of pathSet.years) {
const wins = ... // get the wins for that team and year from the data source
results.push({
path: ["seasonIndex", team, year, "wins"],
value: wins
})
}
}
}
}
Маршрут для wins
и маршрут для losses
вероятно, в конечном итоге будут похожи, так что вы можете свернуть их так:
{
route: "seasonIndex[{keys:teams}][{keys:years}][{keys:property}]",
get(pathSet) {
const results = []
for (team of pathSet.teams) {
for (year of pathSet.years) {
for (property of pathSet.properties) {
const value = ... // get the value of the property for that team and year from the data source
results.push({
path: ["seasonIndex", team, year, property],
value
})
}
}
}
}
}