graphql的服务器端带有nodejs和express。这是graphql的架构。它具有一个查询,该查询接受具有日期和日期的DateT对象。
var schema = buildSchema(`
type Query {
courseWithDate(
timeFilter: DateT
): Course
},
type Course {
...
from: String
to: String
},
type DateT{
from : String
to : String
}
`);
这就是我获得课程的方式
我可以使用此网址运行应用程序
localhost:4000/graphql
这是我正在使用的查询
query courseWithDate($from: dateFrom, $to: dateTo) {
courseWithDate(timeFilter: {
from: "${dateFrom}"
to: "${dateTo}"
}) {
title
...
}
}
具有这些参数
{
"from": "2019-10-10","to":"2019-10-10"
}
我收到的异常消息与我要传递的输入类型有关。
{
"errors": [
{
"message": "The type of Query.courseWithDate(timeFilter:) must be Input Type but got: DateT.",
"locations": [
{
"line": 6,
"column": 25
}
]
}
]
}
答案 0 :(得分:0)
我不确定,但是这种风格可能更像是最佳实践
type Course {
id: Int
title: String
author: String
from: String
to: String
description: String
topic: String
url: String
}
input DateInput {
dateFrom: String!
dateTo: String!
}
type Query {
courseWithDate(input: DateInput!, name: String!): Course
}
并且在客户端的查询应该是:
{
courseWithDate(input: {
dateFrom: "${dateFrom}"
dateTo: "${dateTo}"
}
name: "${name}")
{
id
name
}
}