如何重用GQL查询?

时间:2019-07-16 12:29:12

标签: javascript graphql apollo apollo-angular

想象一下我有这个“模式”:

type User {
    id: ID!
    name: String!
}

现在,在我的组件之一(A)中,我需要用户id;在另一个组件(B)中,我需要用户id和用户name

我现在正在做的是在A Component中进行用户查询,仅请求ID。在B Component中,我要进行另一个用户查询,要求输入ID和名称。

其中有一部分查询总是相同的:

// Component A request
const query = gql`{
    User(id: 1) {
        id
    }
}`
// Component B request
const query = gql`{
    User(id: 1) {
        id
        name
    }
}`

User(id:1){}是相同的,建议更改的是响应参数。正确的方法是什么?复制查询的固定部分是否正确?

我们的问题是,如果将来架构发生更改,我们将需要在所有位置重构所有查询。我们想要的是一种对它进行集中化和参数化的方法,以便可以根据架构更改进行扩展。

我的一个队友做了一个函数,该函数接收一个字符串并将其放在GQL查询中。我不喜欢这种方法。你觉得呢?

0 个答案:

没有答案