Знать указанные поля на стороне сервера в GraphQL / Sangria-Graphql
Когда клиент отправляет запрос, я хочу знать, какие поля клиент запрашивает для данных. Например,
{
user {
name
address
}
}
В приведенном выше запросе клиент запросил name
поле и address
поле пользователя. как узнать / получить указанные поля, например имя и адрес, на сервере sangria-graphql при выполнении запроса?
1 ответ
Решение
Ты должен использовать 4th
параметр в resolve()
resolve: (obj, args, auth, fieldASTs) => {
/* all your fields are present in selections
please check the fieldASTs JSON path it may vary if you are using relay
connections */
const requiredFields = fieldASTs.fieldNodes[0].selectionSet.selections.map(
(set) => set.name.value
);
// requiredFields will contain the name and address
}
/* fieldASTs contains fieldNames, fieldNodes and every details about your Schema
you can get your specified fields inside fieldNodes like */