我正在尝试将Apollo GraphQL客户端用于React Native。但是,在我的应用程序的某些部分中,我需要对GraphQL数据进行更改,以使该接口不应向用户公开。
例如,在我的注册页面上,我想在数据库中创建一个用户,但是只有在我检查并验证了所有内容,创建了一个uuid等之后(才需要一个类)。如果呼叫成功,我想立即转到该应用程序的主页。如果没有,我想通知用户。
这样,我需要访问来执行GraphQL请求,不带钩子,而仅使用回调来更改UI。这可能吗,怎么办?
答案 0 :(得分:1)
是的,有可能。
对graphql服务的调用仅期望主体中的query
或mutation
的键值对与您要发送的查询/突变。
您可以通过一个简单的fetch
请求(例如POST
或cURL
或通过邮递员来完成此操作,只要它的{{ 1}}请求。
另请参阅:https://blog.apollographql.com/4-simple-ways-to-call-a-graphql-api-a6807bcdb355
答案 1 :(得分:0)
文档在解释方面做得不好,但您可以简单地在 ApolloClient 对象上调用 query
或 mutate
。 https://www.apollographql.com/docs/react/api/core/ApolloClient/#apolloclient-functions
与其他答案相比,这可能比仅使用 fetch
进行原始调用要好,因为它使用与应用程序其余部分相同的缓存层,而不是绕过它。
答案 2 :(得分:0)
const apolloClient = new ApolloClient({
uri: "/graphql",
cache: new InMemoryCache()
})
const qr = gql`
query {
getCustomers() {
name
}
}
`
const result = await apolloClient.query({
query: qr ,
variables: {}
})