GraphQL Apollo 错误请求
GraphQL Apollo Bad request
我正在尝试在 React 应用程序中使用 GraphQL 和 Apollo 从 themovieDB 查询数据。
我正在发送非常相似的请求,但其中只有一个似乎有效。我试过将查询分成单独的组件,但它没有帮助,所以它不太可能与我发送多个查询的事实有关。 "ONE_MOVIE_BY_ID_QUERY" 触发错误 "Error: Network error: Response not successful: Received status code 400"。以下是我调用查询的方式:
const {
loading : loadingLatest,
error : errorLatest,
data : latestData,
refetch : refetchLatest
} = useQuery(LATEST_MOVIE_QUERY, {
variables : { movieId: 'latest' }
});
const { loading, error, data, refetch } = useQuery(ONE_MOVIE_BY_ID_QUERY, {
variables : { movieId: movieState },
skip : !latestData
});
查询本身:
export const ONE_MOVIE_BY_ID_QUERY = gql`
query OneMovieByIdQuery($movieId: String!) {
oneMovieById(movieId: $movieId) {
id
adult
title
poster_path
original_language
original_title
overview
release_date
runtime
budget
belongs_to_collection
imdb_id
revenue
tagline
genres
production_countries
}
}
`;
export const LATEST_MOVIE_QUERY = gql`
query OneMovieByIdQuery($movieId: String!) {
oneMovieById(movieId: $movieId) {
id
}
}
`;
最后是 GraphQL 模式
oneMovieById : {
type : MovieType,
args : {
movieId : { type: GraphQLString }
},
resolve(parent, args) {
return axios
.get(`https://api.themoviedb.org/3/movie/${args.movieId}?api_key=${myAPIKey}`)
.then((res) => res.data);
}
}
我应该指出,当我在 GraphiQL 中尝试查询时,查询似乎按预期工作,并在变量作为 "latest" 和字符串中的数字之间切换。
感谢 Daniel Rearden 的回答,我犯的错误是我忘记在查询中包含子字段,这似乎触发了错误。再次感谢您的帮助!
我正在尝试在 React 应用程序中使用 GraphQL 和 Apollo 从 themovieDB 查询数据。 我正在发送非常相似的请求,但其中只有一个似乎有效。我试过将查询分成单独的组件,但它没有帮助,所以它不太可能与我发送多个查询的事实有关。 "ONE_MOVIE_BY_ID_QUERY" 触发错误 "Error: Network error: Response not successful: Received status code 400"。以下是我调用查询的方式:
const {
loading : loadingLatest,
error : errorLatest,
data : latestData,
refetch : refetchLatest
} = useQuery(LATEST_MOVIE_QUERY, {
variables : { movieId: 'latest' }
});
const { loading, error, data, refetch } = useQuery(ONE_MOVIE_BY_ID_QUERY, {
variables : { movieId: movieState },
skip : !latestData
});
查询本身:
export const ONE_MOVIE_BY_ID_QUERY = gql`
query OneMovieByIdQuery($movieId: String!) {
oneMovieById(movieId: $movieId) {
id
adult
title
poster_path
original_language
original_title
overview
release_date
runtime
budget
belongs_to_collection
imdb_id
revenue
tagline
genres
production_countries
}
}
`;
export const LATEST_MOVIE_QUERY = gql`
query OneMovieByIdQuery($movieId: String!) {
oneMovieById(movieId: $movieId) {
id
}
}
`;
最后是 GraphQL 模式
oneMovieById : {
type : MovieType,
args : {
movieId : { type: GraphQLString }
},
resolve(parent, args) {
return axios
.get(`https://api.themoviedb.org/3/movie/${args.movieId}?api_key=${myAPIKey}`)
.then((res) => res.data);
}
}
我应该指出,当我在 GraphiQL 中尝试查询时,查询似乎按预期工作,并在变量作为 "latest" 和字符串中的数字之间切换。
感谢 Daniel Rearden 的回答,我犯的错误是我忘记在查询中包含子字段,这似乎触发了错误。再次感谢您的帮助!