graphql - 从 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 } }}"
}
它的工作。我想使用上述格式。都是无效请求。请分享您的知识或指导我到正确的博客进行参考。
解决方案
由于此时 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"
}
}
}
推荐阅读
- java - 存储的变量总是读为假?
- javascript - 为什么我的简单对等应用程序无法在服务器上运行
- android - 这个图标叫什么(反应原生矢量图标)
- javascript - 为什么我没有看到我的智能合约进入区块链?
- typescript - 如何根据现有对象值定义 Typescript 对象类型?
- c# - csvhelper 从行中的不同项目映射字段
- c# - 在 PictureBox 上捕获 KeyDown 事件
- javascript - 如何在 JavaScript 中返回嵌套对象的属性
- docker - 如何使用 Docker 公开一系列 UDP 端口
- python - Matplotlib 在所有子图上绘制相同的点