0

是否有一种标准方法可以使用 Apollo 客户端在同一请求中发送动态数量的突变?

我必须处理一个只公开一个删除突变的 Graphql API,我想用多个 id 来调用它。这是它的定义方式:

mutation DeleteItemById($id: Int) {
    delete_item(id: $id) {
        id
    }
}

从我读到的,我可以做类似的事情

mutation DeleteItemById($id_1: Int, $id_2: Int) {
    delete_item_1: delete_item(id: $id_1) {
        id
    }
    delete_item_2: delete_item(id: $id_2) {
        id
    }
}

但是我怎么能动态地生成这样的查询呢?无论如何,这是一个好习惯吗?我总是读到动态生成graphql查询不是一个好主意。

另外,我正在使用 graphql-codegen 并在 .graphql 文件中静态定义查询,所以我想它在解析动态查询时会遇到问题。

4

1 回答 1

0

一般来说,动态生成 GraphQL 查询是个坏主意。解决这个问题的一个好方法是创建一个支持多个 id 的新突变,在同一批次中验证和删除所有,例如:

type Mutation {
  deleteItems(ids: [String!]!): Boolean!
}
于 2021-12-08T21:48:54.667 回答