了解最新技术文章
GraphQL 突变是修改或更改服务器上数据的操作。虽然 GraphQL 查询用于检索数据,但突变允许您创建、更新或删除数据。它们就像查询一样在模式中定义,但它们通常用于执行写入操作。
在这篇文章中,我们将逐步介绍实现 GraphQL 突变的过程。我们还将演示如何使用突变中的变量,并展示如何使用 Postman 的 GraphQL 客户端创建动态测试用例。
实现 GraphQL 突变涉及几个步骤:
模式定义:突变在 GraphQL 模式中定义,以指定其类型(即创建、更新或删除)以及其预期的输入和输出类型。
解析器函数:在模式中定义突变后,下一步是实现相应的解析器函数,该函数将处理突变背后的逻辑。这些解析器函数定义如何执行数据修改。
执行:当执行突变时,它会被发送到服务器,在服务器上触发指定的解析器函数来执行所需的操作。
让我们考虑一个用户应用程序的简单架构:
类型用户{ 身份证:身份证! 名称: 字符串! 电子邮件:字符串!}类型突变 { createUser(名称:字符串!,电子邮件:字符串!):用户! updateUser(id: ID!, name: String!, email: String!): 用户! deleteUser(id: ID!): 布尔值!}
在这个简单的架构中:
该createUser
突变接受name
和email
作为必需参数并返回一个User
实例。
该突变使用、和参数updateUser
更新用户并返回更新后的实例。id
name
email
User
突变deleteUser
会删除带有参数的用户id
并返回true
或false
,具体取决于突变是否成功。
GraphQL中的变量允许动态输入查询和突变。它们有助于使突变可重用并防止注入攻击等漏洞。例如,在创建用户的应用程序中,变量允许某人通过将参数(例如用户 ID 或用户名)传递到突变中来创建、更新或删除特定用户。这种方法通过确保用户输入被视为变量而不是直接插入到突变查询中来防止潜在的注入攻击。
在 GraphQL 中,变量是与查询或突变本身一起指定的。它们允许将动态值传递到查询中,而不是硬编码到其中。
以下是在突变中使用变量的方法:
突变 CreatePerson($name: String!, $age: Int!) { createPerson(人: {姓名: $name, 年龄: $age}) { ID 年龄 姓名 }}
在这个例子中:
CreatePerson
是突变的名称。
$name
和$age
是用所需类型指定的变量(String!
并将Int!
它们表示为必需参数)。
在突变内部,变量用作参数 ( name: $name, age: $age
)。
该$
符号表示该字段由变量指定。
在实现 GraphQL 突变时,动态测试起着至关重要的作用,因为它使开发人员能够解决不同的边缘情况、测试不同的工作负载并彻底评估 API 功能。Postman 的 GraphQL 客户端使开发人员能够使用变量进行动态突变执行。这是一个例子:
在这里,我们利用Postman 的变量表示法 - and -{{name}}
以及GraphQL 的变量表示法- and - 手动验证突变是否按预期工作。{{age}}
$name
$age
创建更加动态的测试工作流程的另一种方法涉及使用脚本和利用 Postman 的内置库。脚本提供了通过在查询执行前后存储和验证这些变量来指导变量工作流程的功能。通过利用pm.collectionVariables.set("variable_key", "variable_value");
,您可以在触发突变之前建立集合变量,并在执行后验证这些变量。
此外,Postman 内置的 faker 库使用户能够创建多样化的样本数据,包括随机名称、地址、电子邮件地址等。这通过额外的活力和灵活性丰富了工作流程,如下所示:
GraphQL 突变是 GraphQL 生态系统中的基石功能,使开发人员能够有效地更改服务器端数据。它们对于在 GraphQL API 中实现写入操作是不可或缺的。Postman 的 GraphQL 客户端支持突变执行、变量处理和复杂工作流程的脚本编写,为测试和开发目的提供了强大的工具集。
上一篇:在 Postman 公共 API 网络中使用这些游戏 API
下一篇:没有了!