【GraphQL】Apollo Server初體驗 (Nodejs篇)

GraphQL是一種用於API的查詢語言,這項技術是由Facebook從2012年開始使用,為了因應跨裝置及開發News Feed功能而開發,後來覺得不錯用,所以就於2015年公開釋出,它讓Query更加自由,以往如果要新增一組Query,就必須跟後臺人員溝通,現在可以讓前臺的人有很大的空間去修改(工作又多了一項?),有效減少Request的次數,是不是聽起來很不錯啊?現在就來試試看吧,Let’s go。

安裝

基本環境

node -v
npm -v
mkdir graphql_demo
cd graphql_demo
npm init -y
npm install --save apollo-server qraphql

Hello World

  • 先寫一段簡單的index.js試試看吧
// index.js
const { ApolloServer, gql } = require('apollo-server');

const typeDefs = gql`
  type Query {
    "A simple type for getting started!"
    hello: String
  }
`;

const resolvers = {
  Query: {
    hello: () => 'world'
  }
};

const server = new ApolloServer({
  typeDefs,
  resolvers
});

server.listen().then(({ url }) => {
  console.log(`? Server ready at ${url}`);
});
node index.js

開啟網頁

query {
    hello
}

利用npm開啟

  • 雖然直接使用node指令來開啟index.js是可以的,但是一般還是利用npm - package.json來管理比較方便
"start": "node index.js"

測試API神器

{
    "query": "query: { hello }"
}

後記

  • 就個人的感覺,GraphQL比較像是對資料做兩次搜尋,將得來不易的資料結果好好利用,讓後端的負擔減輕。另外GraphQL是一門新的東東,至於將來的發展呢?這裡有一篇文章可以參考一下,阻礙你使用 GraphQL 的十個問題