我使用插件graphql-ruby将 Rails 用作 GraphQL 后端。在前端大小上,我将 Apollo Client 用于我的 react/redux 项目。
这是我的前端:
const networkInterface = createNetworkInterface({
uri: 'http://localhost:4001/graphql',
});
export const apolloClient = new ApolloClient({ networkInterface });
在我的后端,我已经成功测试了以下查询http://localhost:4001/graphiql
。
query{
allAuthors{
full_name,
books{
book_name,
book_description,
isbn
}
}
}
这是我的 Rails 路线配置:
if Rails.env.development?
mount GraphiQL::Rails::Engine, at: "/graphiql", graphql_path: "/graphql"
end
post "/graphql", to: "graphql#execute"
我尝试从前端获取类似的数据。这是我的代码:
const ALL_AUTHORS_QUERY = gql`
query allAuthors {
full_name,
books{
book_name,
book_description,
isbn
}
}
`;
apolloClient
.query({
query: ALL_AUTHORS_QUERY,
})
.then(response => console.log(response.data));
}
但在那之后,我遇到了以下异常:
POST http://localhost:4001/graphql 422 (Unprocessable Entity)
请告诉我我做错了什么?谢谢
@Edit 1: 我也在客户端尝试不同的查询,但问题仍然相同。
const ALL_AUTHORS_QUERY = gql`
query {
allAuthors {
full_name
books {
book_name
book_description
isbn
}
}
}
`;
apolloClient
.query({
query: ALL_AUTHORS_QUERY,
})
.then(response => console.log(response.data));