我试图从中提取的 API 资源需要一个 GET 请求。如何使用 useQuery 钩子发送 GET 请求,它似乎只发送 POST 请求。
在我对 GraphQL 的有限理解中,是否应该更改服务器以便 GET_ALL_MODELS 的端点是一个 POST 请求,或者我是否需要在前端更改某些内容以便我的查询发送一个 GET 方法请求。
我试图从中提取的 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
}),
});
如果您需要为特定查询执行此操作,您可以覆盖ApolloLink
上下文并设置fetchOptions.method
为GET
.
const query = useQuery(gql`...`, {variables: {...}, context: {fetchOptions: {method: 'GET'}}})