首页 > 解决方案 > 从 Mule 4 使用 graphQL API

问题描述

我想消费graphQl API。我知道我们需要使用 http 请求者来调用 graphQl。我需要一些关于使用 dwl 形成突变请求的信息。我试图在 下面使用此服务https://www.predic8.de/fruit-shop-graphql

%dw2.0
outputapplication/json
---
{
  "query": "mutation(\$input:addCategoryInput!) { addCategory(input:\$input) { name products { name}} }",
  "variables": {
    "input": {
      "id": 6,
      "name": "Green Fruits",
      "products": 8
    }
  }
}

它抛出了错误的请求但是在下面使用时

%dw 2.0
output application/json
---
{
  "query": "mutation {  addCategory(id: 6, name: \"Green Fruits\", products: 8) {    name    products {      name    }  }}"
}

它的工作。我想使用上述格式。都是无效请求。请分享您的知识或指导我到正确的博客进行参考。

标签: graphqldataweavemule4

解决方案


由于此时 DataWeave 不支持 GraphQL 格式,因此您必须自己将查询编写为字符串。但是,您可以使用 DataWeave 为查询创建 POST 请求的正文。

例子:

%dw 2.0
output application/json
---
{
    "query": "mutation(\$schedule:PipelineScheduleCreateInput!) { pipelineScheduleCreate(input:\$schedule) { pipelineScheduleEdge { node { label nextBuildAt cronline } } } }",
    "variables": {
      "schedule": {
        "pipelineID": "UGlwZWxpbmUtLS02MzliNWJjOC0wMGZmLT",
        "cronline": "@midnight",
        "label": "Nightly build"
      }
    }
}

推荐阅读