#reactjs #apollo-client #react-apollo #graphql-js #react-apollo-hooks
Вопрос:
Ресурс API, который я пытаюсь извлечь, ожидает запроса GET. Как я могу использовать крючок useQuery для отправки запроса GET, похоже, что он отправляет только запросы POST.
В моем ограниченном понимании GraphQL, должен ли сервер быть изменен, чтобы конечная точка для GET_ALL_MODELS была запросом POST, или мне нужно что-то изменить на интерфейсе, чтобы мой запрос отправлял запрос метода GET.
Ответ №1:
Есть 2 способа реализовать это.
Один из них настраивает вас ApolloClient
на отправку всех запросов как GET
. Это достигается HttpLink
с useGETForQueries
помощью as true
import { ApolloClient, InMemoryCache, HttpLink, ApolloLink } from '@apollo/client';
const client = new ApolloClient({
cache: new InMemoryCache(),
link: new HttpLink({
uri: '/graphql',
useGETForQueries: true
}),
});
И в случае, если вам нужно сделать это для определенного запроса, вы можете переопределить ApolloLink
контекст и установить fetchOptions.method
значение GET
.
const query = useQuery(gql`...`, {variables: {...}, context: {fetchOptions: {method: 'GET'}}})
Комментарии:
1. действительно полезно спасибо вам за это, я так много раз просматривал документы и все время ловил себя на том, что блуждаю по документации useQuery hook,