前幾天都簡單帶大家了解什麼是Rest及Restful API 設計規範,那不免俗也要介紹現在流行的GraphQL
簡單來說,GraphQL(query language) 也是一種設計規範,並非是框架或語言,
Day7範例的FastAPI就是框架,Python是語言
API | 說明 | Restful |
---|---|---|
POST /icegraphql |
取得所有冰塊的價格資料 | GET /api/getIces |
POST /icegraphql |
取得冰塊編號111的個別資料 | GET /api/getIces/:IceId |
GraphQL是透過讓CLient端能夠更直覺的去查詢或是修改所需要的數據,因此只要呼叫單個API /icegraphql
,剩下要看需要什麼資料接著去query指定的資料,他通常都是用POST
以及傳入 Json Body
範例1. 取得所有冰塊的價格資料
# call /icegraphql
query {
IceInfo {
IceID
IcePrice
}
}
# call /icegraphql
query {
IceInfo (IceID: "111"){
IceID
IcePrice
}
}
GraphQL’s power comes from a simple idea — instead of defining the structure of responses on the server, the flexibility is given to the client.
Petr Bela
圖片中,就可以更明確的看出兩種設計方案的差異!
圖片來源
直接來個業界應用範例,讓大家瞧瞧看
rakuten 樂天市場
line購物
參考資料