iT邦幫忙

2022 iThome 鐵人賽

DAY 22
0
Modern Web

Full Stack Web Development 網站實作系列 第 22

Day 22 GraphQL (1) - Apollo Server

  • 分享至 

  • xImage
  •  

REST 和 GraphQL:
REST:
REST(REpresentational State Transfer) 是最為常見的 Server 提供介面給瀏覽器的服務方式。

https://ithelp.ithome.com.tw/upload/images/20221007/20129584LXXaNQFaS5.png

遵循 REST 架構的 API(或稱 Web Service) 就是 REST API。
REST 是 resource-base 的,每一個資源(resource),例如:user,都有辨識它的位址(address),例如:/users/10。但是,當資料變複雜時,位址就會變長,甚至長到沒辦法以一個指令來存取這個資料。這就是 GraphQL 出現的原因。

GraphQL:
GraphQL(Graph Query Language) 是以圖形 (graph) 方式架構資料,再以它強而有力的查詢語法 (query syntax)來存取這些資料。
GraphQL 是開源軟體,是 Facebook 發展出來的 server-side 技術,也是一個執行引擎 (execution engine) 和 資料查詢語言(data query language)。

GraphQL 的核心是 Schema,Schema 是用來描述在 client 和 server 之間傳輸的資料。
現在,建立一個目錄 /GraphQL/server/。
執行下列指令:

npm install apollo-server graphql

用 Apollo Server library 來建立 GraphQL server。

新增 server.js:

const typeDefs = `
  type Query {
    greeting: String
  }
`;

這個 Schema 描述了一個 type 。


上一篇
Day 21 使用Next.js和 Supabase -- CRUD(2)
下一篇
Day 23 GraphQL(2) - Apollo Server
系列文
Full Stack Web Development 網站實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言