在GraphQL请求中接受JSON,可以通过以下步骤实现:
input
类型来定义一个包含JSON字段的输入类型。例如,可以定义一个名为JsonInput
的输入类型,其中包含一个名为data
的字段,类型为JSON
。input JsonInput {
data: JSON
}
const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const { buildSchema } = require('graphql');
// 定义GraphQL Schema
const schema = buildSchema(`
input JsonInput {
data: JSON
}
type Query {
hello: String
}
type Mutation {
processJson(input: JsonInput): String
}
`);
// 创建GraphQL解析器
const root = {
hello: () => 'Hello, World!',
processJson: ({ input }) => {
// 处理接受到的JSON数据
const jsonData = input.data;
// 进行相应的处理逻辑
return 'JSON processed successfully';
}
};
// 创建Express应用
const app = express();
// 将GraphQL中间件添加到Express应用
app.use('/graphql', graphqlHTTP({
schema: schema,
rootValue: root,
graphiql: true
}));
// 启动服务器
app.listen(3000, () => {
console.log('GraphQL server running on port 3000');
});
processJson
mutation来发送JSON数据。以下是一个使用cURL发送GraphQL请求的示例:curl -X POST -H "Content-Type: application/json" -d '{
"query": "mutation ($input: JsonInput) { processJson(input: $input) }",
"variables": {
"input": {
"data": {
"key1": "value1",
"key2": "value2"
}
}
}
}' http://localhost:3000/graphql
在上述示例中,我们发送了一个包含JSON数据的GraphQL请求,并将其作为input
参数传递给processJson
mutation。服务器将接收到的JSON数据进行处理,并返回相应的结果。
总结:通过在GraphQL Schema中定义接受JSON的输入类型,并在GraphQL解析器中处理接受到的JSON数据,可以在GraphQL请求中接受JSON。这样可以方便地在GraphQL中传递和处理复杂的数据结构。
领取专属 10元无门槛券
手把手带您无忧上云