1

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

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

4

1 回答 1

1

有两种方法可以实现这一点。

一个是设置您ApolloClient将所有查询发送为GET. 这是使用HttpLinkwith useGETForQueriesas来实现的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.methodGET.

const query = useQuery(gql`...`, {variables: {...}, context: {fetchOptions: {method: 'GET'}}})
于 2021-10-29T18:53:15.430 回答