用于 GET 请求的 Apollo 客户端 useQuery 反应挂钩

Apollo Client useQuery react hook for GET requests

我试图从中提取的 API 资源需要一个 GET 请求。 我如何使用 useQuery 挂钩发送 GET 请求,它似乎只发送 POST 个请求。

以我对 GraphQL 的有限理解,是否应该更改服务器以便 GET_ALL_MODELS 的端点是 POST 请求,或者我是否需要更改前端的某些内容以便我的查询发送 GET方法请求。

有两种方法可以实现。

一个正在设置您的 ApolloClient 以将所有查询发送为 GET。这是使用 HttpLink with 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
  }),
});

如果您需要为特定查询执行此操作,您可以 override the ApolloLink context 并将 fetchOptions.method 设置为 GET

const query = useQuery(gql`...`, {variables: {...}, context: {fetchOptions: {method: 'GET'}}})