Я пытаюсь запросить данные из themovieDB с помощью GraphQL и Apollo в приложении реагирования. Я отправляю очень похожие запросы, но, похоже, работает только один из них. Я попытался разделить запросы на отдельные компоненты, но это не помогает, поэтому маловероятно, что это связано с тем, что я отправляю несколько запросов. «ONE_MOVIE_BY_ID_QUERY» вызывает ошибку «Ошибка: ошибка сети: ответ не выполнен: получен код состояния 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 и переключаюсь между наличием переменной как «самой последней» и как числа в строке.