Смешение публичных / личных данных в рамках одного звонка
Недавно я читал о Falcor JS и подумал, что это может быть хорошей альтернативой relay + graphQL. Кто-нибудь использовал его для приличного размера проекта с какой-то сложностью, скажите мне, как он работает.
Также, возможно, дайте мне несколько подсказок о том, как обращаться с данными в наборах, которые должны быть аутентифицированы, прежде чем вы сможете получить к ним доступ. Как набор данных будет искать запрос, который включает в себя публичные / защищенные данные?
1 ответ
Мы используем Falcor для большого проекта, он ежедневно обрабатывает +/- 15 миллионов запросов, включая запросы на аутентификацию.
То, что мы делаем, чтобы структурировать, что команда Falcor также называет, граф JSON всегда придерживается somethingById
-> UID
-> data model
состав.
Например:
{
"productById": {
"1234": {
"Name": "Foo",
"Weight": 500,
"Price": 50
}
}
}
Теперь, чтобы ответить на ваш вопрос о части аутентификации, Falcor-router является ответом для решения этой проблемы.
Например, предположим, что у вас есть продукт, цена которого основана на аутентифицированном пользователе, если вы хотите запросить цену через маршрутизатор falcor, URL запроса может выглядеть примерно так: /model.json?paths=[["productById",1234,"Price"]]&method=get
В роутере вы можете сделать что-то вроде этого:
{
route: "productById[{integers:productIds}]['Price']",
get: function(pathSet){
// do something related to pricing
}
}
Короче говоря, Falcor можно использовать для выполнения аутентификационных операций через маршрутизатор. Я настоятельно рекомендую вам посмотреть видео, опубликованные Джафаром Хусейном.