Я работаю с graphql.
Мой бэкэнд окончательно установлен, и теперь я работаю над отправкой запросов с моего веб-интерфейса на мой бэкэнд.
Представьте себе этот запрос:
{
login(Email:"MyEmail", Password:"MyCoolPasswordHello")
{token
refreshToken}
}
Я думал, что мог бы попытаться сделать мои запросы повторяемыми во внешнем интерфейсе, поэтому я создал файл запросов и сделал это:
export enum QueryNames {
login = 'login',
}
export const getQuery = (query: QueryNames, params: any): any => {
const queries = {
login: `{login(${params}){token refreshToken}}`,
}[query];
if (!queries) return {};
return queries;
};
export const query = (queryName: QueryNames, params: any) => getQuery(queryName, params);
Он вызывается так:
console.log(getQuery(QueryNames.login, { Email: "Hello", Password: "HelloPassword" }));
Результат:
{login ([объект объекта]) {токен refreshToken}}
Я могу изменить свой логин на
export const getQuery = (query: QueryNames, params: any): any => {
const queries = {
login: `{login(Emai:${params.Email} Password: ${params.Password}){token refreshToken}}`,
}[query];
if (!queries) return {};
return queries;
};
И тогда я получу желаемый результат.
Есть ли способ сделать так, чтобы имена и значения моих свойств читались вместо того, чтобы я явно устанавливал Email:
и Password:
?