iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 26
0

介紹

要使用ApolloData 提供的Engine 先到 https://engine.apollographql.com/ 頁面使用Github帳號登入
並申請的engine api,目前支持的版本有這幾個
https://ithelp.ithome.com.tw/upload/images/20180103/20103438Te7mt18z5X.png

啟動一個基本的 apollo-engine 以 node為範例

1.在server端 graphqlExpress 套件中 打開 tracing cacheControl

app.use('/graphql', bodyParser.json(), graphqlExpress({
  schema,
  context: { ... },

  // Add the two options below
  tracing: true,
  cacheControl: true
}));

2.ApolloData建議在傳送中使用壓縮 middleware , 所以安裝 npm install compression --save 後
程式碼

var compression = require('compression')
app.use(compression());

然後安裝 npm install --save apollo-engine 套上剛剛申請的engine api

import { Engine } from 'apollo-engine';

const engine = new Engine({
  engineConfig: {
    apiKey: 'API_KEY_HERE'
  }
});

engine.start();

engine 的 option設定

const engine = new Engine({
  engineConfig: {
    apiKey: engineApiKey,
    logging: {
      level: 'DEBUG'   // Engine Proxy logging level. DEBUG, INFO, WARN or ERROR
    }
  },

  // GraphQL port
  graphqlPort: process.env.PORT || 8003,

  // GraphQL endpoint suffix - '/graphql' by default
  endpoint: '/graphql',

  // Debug configuration that logs traffic between Proxy and GraphQL server
  dumpTraffic: true
});

engine的log可以指定level,graphql server 可以指定 port跟端點 proxy server要把dumpTraffic 設定為true

3.目前node 有支援四個版本的middleware

expressMiddleware – use for Express servers.
connectMiddleware – use for Connect or Restify servers.
instrumentHapiServer – use for Hapi servers.
koaMiddleware – use for Koa servers.

設定完engine後就用middleware的方式坎入

const app = express();

app.use(engine.expressMiddleware());

4.接著就可以去看 engine 提供的 ui介面看到設定好的監聽成果

總結
ApolloData 2.0後提供了engine 在串接上提供簡單的API與 middleware 只要選定好後就可以開始使用了,引擎每個月的前100萬查詢是免費的,對許多應用程序是綽綽有餘快來試用吧。


上一篇
ApolloData & Engine
下一篇
ApolloData & Engine (三)
系列文
GraphQL + ApolloData 入門30

尚未有邦友留言

立即登入留言