雖然 GraphQL 主要是給前端使用,但有時在 Microservice 架構下,後端也會需要呼叫其他 Service 所提供 GraphQL,此時可在 Node 使用 graphql-request
。
Version
macOS Catalina 10.15.3
WebStorm 2019.3.3
Node 12.4.0
Graphql-request 1.8.2
Install Package
$ yarn add graphql-request
使用 Yarn 安裝 graphql-request
。
GraphQL Request
import { GraphQLClient } from "graphql-request"
let myGql = new GraphQLClient('http://localhost:4000/')
let query = `
query {
books {
title
price
quantity
}
}
`
myGql
.request(query)
.then(console.log)
第 1 行
import { GraphQLClient } from "graphql-request"
從 graphql-request
import 進 GraphqlClient()
。
第 3 行
let myGql = new GraphQLClient('http://localhost:4000/')
由 GraphQLClient
傳進 GraphQL API 的 url,使其建立 myGql()
object。
第 5 行
let query = `
query {
books {
title
price
quantity
}
}
`
從 GraphQL Playground 貼上 GraphQL query。
15 行
myGql
.request(query)
.then(console.log)
將 GraphQL query 傳入 myGql.request()
,由於其回傳為 promise,因此可繼續使用 ECMAScript 各種應付 promise 技巧繼續處理。
Conclusion
- 事實上前端也能使用
graphql-request
,由於其回傳 promise,因此可自行將 promise 以 side effect 形式寫入 Vue 的data
使其 data binding