GraphQL 是一个用于构建 API 的查询语言和运行时。它的主要特点是能够让客户端只请求所需要的数据,而不是像 REST API 一样返回整个资源。除此之外,GraphQL 还提供了灵活的写操作来管理服务器上的数据。
GraphQL 的写操作包括创建、更新和删除。本文将重点探讨如何在 GraphQL 中处理写操作的具体实现。
创建
在 GraphQL 中,创建操作可以通过 mutation
类型来执行。
-- -------------------- ---- ------- -------- - ----------------- - ----- ----- ----- ------ ---------------------- --------- -------- -- - -- ---- ----- - -
在上面的例子中,createUser
是一个自定义的 mutation,它接受一个 input
参数,其中包含了需要创建的用户的属性。在执行该 mutation 后,服务器将返回刚刚创建的用户的主要属性。
下面是一段示例代码,展示了如何在 GraphQL 中定义和执行 createUser
mutation:
-- -------------------- ---- ------- ---- -------- - ----------------- ------------ ----- - ----- --------- - ----- ------- ------ ------- --------- ------- - ---- ---- - --- --- ----- ------- ------ ------- -
-- -------------------- ---- ------- ----- -------- ------------------ ----- -------- ----- - ----- - ----- - - ----- ----- ------ - ----- ---------------------------- ----- - ----- ----------- ------ ------------ --------- --------------- - -------- ------ ----------------------------- ------ - --- ------ - --- - ----- --------- - - --------- - ---------- - --
在上面的代码中,我们定义了一个 createUser
mutation,它接受一个 UserInput
类型的参数,用于创建一个新用户。在执行该 mutation 时,我们需要调用 Prisma 的 create
方法来将用户数据存储到数据库中,然后返回刚创建的用户。
更新
在 GraphQL 中,更新操作也可以通过 mutation
类型来执行。
mutation { updateUser(id: "1", input: { name: "John Doe Jr." }) { id name } }
在上面的例子中,updateUser
是一个自定义的 mutation,它接受一个 id
参数和一个 input
参数,用于更新用户的属性。在执行该 mutation 后,服务器将返回刚刚更新的用户的主要属性。
下面是一段示例代码,展示了如何在 GraphQL 中定义和执行 updateUser
mutation:
type Mutation { updateUser(id: ID!, input: UserInput!): User! }
-- -------------------- ---- ------- ----- -------- ------------------ ----- -------- ----- - ----- - --- ----- - - ----- ----- ---------------------------- ------ - -- -- ----- - ----- ----------- ------ ------------ --------- --------------- -- --- ------ ----------------------------- ------ - -- -- --- - ----- --------- - - --------- - ---------- -- --
在上面的代码中,我们定义了一个 updateUser
mutation,它接受一个 id
和一个 UserInput
类型的参数,用于更新现有用户的数据。在执行该 mutation 时,我们需要调用 Prisma 的 update
方法来在数据库中更新用户数据,然后返回刚更新的用户。
删除
在 GraphQL 中,删除操作也可以通过 mutation
类型来执行。
mutation { deleteUser(id: "1") { id } }
在上面的例子中,deleteUser
是一个自定义的 mutation,它接受一个 id
参数,用于删除用户。在执行该 mutation 后,服务器将返回被删除的用户的主要属性。
下面是一段示例代码,展示了如何在 GraphQL 中定义和执行 deleteUser
mutation:
type Mutation { deleteUser(id: ID!): User! }
-- -------------------- ---- ------- ----- -------- ------------------ ----- -------- ----- - ----- - -- - - ----- ----- ---- - ----- ----------------------------- ------ - -- - --- ----- ---------------------------- ------ - -- - --- ------ ----- - ----- --------- - - --------- - ---------- - --
在上面的代码中,我们定义了一个 deleteUser
mutation,它接受一个 id
参数,用于删除现有用户。在执行该 mutation 时,我们需要调用 Prisma 的 delete
方法来从数据库中删除用户数据,然后返回被删除的用户。
总结
在 GraphQL 中,写操作可以通过 mutation
类型来定义和执行。本文中,我们介绍了在 GraphQL 中处理创建、更新和删除操作的实现方式,并提供了示例代码。希望这篇文章能够帮助你更好地理解 GraphQL 的写操作,从而在构建自己的应用程序时更加得心应手。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6504328295b1f8cacd0eccbe