介紹
前幾篇文章都是在介紹 Server 的部分,因為 ApolloData 提供了許多前端的套件,這次先以用原生 ApolloClient來做一個 簡單設定並打出 Request 的步驟
安裝
ApolloData 剛升2.0版本 如果是使用2.0之前的版本請參考官方網站
以下是2.0基本設定
import { ApolloClient } from 'apollo-client';
import { HttpLink } from 'apollo-link-http';
import { InMemoryCache } from 'apollo-cache-inmemory';
const client = new ApolloClient({
// 如果沒有特別設定
// `/graphql` 將是預設的endpoint
link: new HttpLink(),
cache: new InMemoryCache()
});
link:中的HttpLink 可以設定任何網域的要連 GraphQL Server ,預設是在本機的 /graphql底下,
另外因為 ApolloData 有cache優化機制所以這邊也要預設給他一個 Cache
import { ApolloClient } from 'apollo-client';
import { HttpLink } from 'apollo-link-http';
import { InMemoryCache } from 'apollo-cache-inmemory';
const client = new ApolloClient({
link: new HttpLink({ uri: 'https://q80vw8qjp.lp.gql.zone/graphql' }),
cache: new InMemoryCache()
});
client.query({ query: gql`{ hello }` }).then(console.log);
在還沒有搭配使用 React 或其他框架時候可以使用原生基本語法 client.query 的方式送出 payload
如果要使用middleware 做一些Token的傳值 可以使用 setContext 來把header 寫入一些token給後端發fetch的時候使用
import { setContext } from 'apollo-link-context';
https://github.com/apollographql/apollo-link/blob/master/packages/apollo-link/src/types.ts#L31
總結
設定 ApolloClient 時,主要設定了 link 與 chache, 設定後,直接使用 ApolloClient 去發 Request 到 GraphQL Server,好處是設定一次就不用每次發 Request 的時候都在設定一次網址 , days7 再來說明 React 如何透過 ApolloData 提供的 HOC 來發 Request