Please enable JavaScript.
Coggle requires JavaScript to display documents.
GraphQL (How (Go (graphql-go), PHP, Python, Rust, C#, Java), Scalar Type…
GraphQL
How
Go
graphql-go
PHP
Python
Rust
C#
Java
Scalar Type
Int
Float
ID
Boolean
String
WHY
client 端可以使用更直覺且彈性的語法來取得或修改資料
聲勢看漲因素
行動裝置普及
資料傳遞速度嚴重影響效能
不同平台所需的資料數量、格式都不同
Domain Knowledge & Business Logic 越來越複雜
Schema 設計越來越複雜
前後端溝通難度增加
Legacy API 難以處理
Micro service 崛起
需要一個統一的介面 (接口) 來協助整合
優點
精準資料取得
程式即文檔
前端控制權提升
高度自由的實作方式
強型別 (Strongly Typed)
缺點
過於自由、規範少
學習成本
仍是一種新技術
Server Side Caching 實作困難
schema
服务端的主体
query
存在于前端中,类似 REST 中的 API
What
一種為 API 設計的資料查詢(修改)的語言
Where
主要使用於應用服務之間的溝通(尤其是前後端)
Who
Facebook, Github, Shopify, Coursera, Twitter