我正在请求Salesforce模式数据。它有一种格式
res = {
Id: { name, type, label },
IsDeleted: { type, name, label },
MasterRecordId: { type, name, label },
...and so on
}因此,字段是动态的。在queries.js中,我试图描述它
export const GET_SALESFORCE_FIELDS = gql`
query SalesforceFields {
salesforceFields @rest(endpoint: "schemaservice", type: "SalesforceFields", path: "/fields") {
// What should be here??
}
}
`;
`如何描述动态部分?我没有任何模式文件或解析器。仅限queries.js (用于使用useQuery的后续请求)和client.js (定义new ApolloClient的位置)
"@apollo/client": "^3.0.0-rc.10",
"apollo-link-rest": "^0.8.0-beta.0"发布于 2020-07-06 19:46:40
解决方法如下:
// queries.js
export const GET_SALESFORCE_FIELDS = gql`
query SalesforceFields {
salesforceFields @rest(endpoint: "schemaservice", type: "SalesforceFieldsPayload", path: "/fields") {
items @type(name: "Salesforce")
}
}
`;
// client.js
const restLink = new RestLink({
...,
typePatcher: {
SalesforceFieldsPayload: (
data,
outerType,
patchDeeper
) => {
if (data != null) {
data.items = Object.keys(data).map(field => ({ __typename: "Salesforce", ...data[field] }));
}
return data;
}
}
});对GitHub的引用:https://github.com/apollographql/apollo-link-rest/issues/258
https://stackoverflow.com/questions/62697383
复制相似问题