用于 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'}}})
我试图从中提取的 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'}}})