无法将 GraphQL 自定义类型作为 Postman 变量

Posted

技术标签:

【中文标题】无法将 GraphQL 自定义类型作为 Postman 变量【英文标题】:Can't place GraphQL custom type as a Postman variable 【发布时间】:2021-11-21 03:00:48 【问题描述】:

有没有人幸运地将 GraphQL 自定义类型参数作为 Postman 或 Graphql 变量?我现在有点绕圈子,我希望一双新的眼睛能指引我正确的方向。 我想要做的是使用 Postman 发送一个突变请求。我遇到的问题是我正在调用的方法将自定义类型作为参数。将该变量的内容放置为 GraphQL 变量或 Postman 变量让我很头疼。我还不能嵌入图片,所以这里是链接(它们是安全的)。

Schema

此自定义类型是一个类似 JSON 的结构,由两个枚举和一组原始类型(字符串、整数...)组成。我可以截图整个事情,但基本上就是这样:两个枚举,后跟字符串,整数...... Custom type definition

到目前为止我已经尝试过:

只需在 Postman 中对请求进行硬编码即可,但我希望发送具有不同数据的多个请求 将其放在 GraphQL 变量中会导致错误消息

“错误”:[ "message": "错误请求 - 请求正文无效。", “地点”:[] ], “数据”:空

将自定义类型内容作为 Postman 环境变量放置是可行的,但出现语法错误(尽管请求通过了...)。 请求正文如下。对其进行硬编码并使用 Postman 变量会产生相同的请求正文,但会出现语法错误。
query: "mutation 
  createApplication(request:  
    applicationKind: NEW_ISSUANCE,
    documentKind: REGULAR_PASSPORT,
    personalData: 
        timestamp: null,
        firstname: "NAME",
        lastname: "LASTNAME",
        middlename: "MIDDLENAME",
        dateOfBirth: "2011-09-28",
        citizenshipCountryCode: "USA",
        gender: MALE,
        personalNumber: "3344",
        placeOfBirth: "CHICAGO",
        municipalityOfBirth: "SOUTH",
        countryCodeOfBirth: "USA",
    addressData:
        street: "WEST",
        municipality: "EAST",
        place: "CHICAGO",
          country: 
            code: "USA",
            name: null
          ,
        entrance: "б",
        flat: "13",
        number: "35"
) 
    
    __typename
    ... on AsyncTaskStatus 
      taskID
      state
      payload 
        ... on ApplicationUpdated 
          applicationID
          applicationNumber
          __typename
        
        __typename
      
      __typename
    
    ... on Error 
      ...errorData
      __typename
    
  


fragment errorData on Error 
  __typename
  code
  message
"

Postman variable with a squiggly line

我现在在转圈。有没有人对这种邮递员的要求有任何运气? 我可以发布更多信息,屏幕截图......让我知道。我会密切关注这个话题并提供反馈。

感谢您的宝贵时间。

【问题讨论】:

如果你将鼠标悬停在邮递员上会出现什么错误 嗨。它是“语法错误:预期名称,找到 ” 你能把邮递员的正文粘贴到问题中吗 我已经用请求正文更新了问题。 【参考方案1】:

请在变量部分添加一个变量为:


"request": request

然后在您的查询中将其引用为

$request

【讨论】:

嗨。我试过了。导致 ` "errors": [ "message": "Bad request - invalid request body.", "locations": [] ], "data": null` 整个请求是一个以 开头并完成的变量与 然后尝试 json 数据原始正文类型 我必须将标头中的 Content-type 更改为 application/graphql 并将正文类型更改为 raw 并且它可以工作!谢谢。为什么不解析GraphQL body 类型中的GraphQL 变量超出了我的范围...

以上是关于无法将 GraphQL 自定义类型作为 Postman 变量的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Graphql 中返回 JSON 对象并定义 JSON 类型

Schema Generator 无法确定 DTO 中自定义对象的 GraphQL 输出类型

类型 Graphql 自定义解析器

使用graphql代码生成器时如何将自定义标量类型映射到打字稿类型?

GraphQL使用之graphql-java自定义标量类型

无法将自定义结果从解析器传递到 Graphql