【发布时间】:2017-07-01 07:06:17
【问题描述】:
我正在尝试模拟我的 graphql 服务器,这样当我查询时,它会返回模拟数据而不是转到 graphql 服务器。在我对模拟 graphql 运行查询时,我得到了这个错误:
"errors":[{"message":"Syntax Error GraphQL request (1:13) Expected $, found Name
\"input\"\n\n1: query login(input: {userName: \"james\" , passWord: \"password\"}
这是我目前的设置:
查询
let query = `query login(input: {userName: "james" , passWord: "password"}){
login(input: {userName: "james" , passWord: "password"})
}`;
架构
const typeDefs = `
type loginCrendentialsType {
data: String
}
input loginInputType{
userName: String!
passWord: String!
}
type RootQuery {
login(input: loginInputType): [loginCrendentialsType]
}
schema {
query: RootQuery
}
`;
模拟
const mocks = {
login: (loginInputType) => ({
data: mockDB.getUser(loginInputType.userName, loginInputType.passWord)
})
};
设置
const schema = makeExecutableSchema({
typeDefs
});
addMockFunctionsToSchema({
schema,
mocks,
});
graphql(schema,query).then((result) => {
console.log("reachedhere " + JSON.stringify(result));
});
【问题讨论】:
-
我认为当你提供输入变量时,一定是变异而不是查询??
-
顺便看看 graphql-faker:github.com/APIs-guru/graphql-faker 它使用 faker.js 来伪造 GraphQL 服务器。它还支持将真实服务器数据与伪造数据混合的扩展模式。
标签: graphql