一次查詢,搞定需求
舉個例子,Book對象有bookTypeId,那我想看對應的bookTypeName,bookType對應的summary咋辦?
如果你用RESTful Api ,免不了要定制接口或者多次調用后端。
現在用上GraphQL,就是這么無情:
#查詢語句
query add{
book(bookId: 1){
bookName
author
bookType{
typeId
typeName
summary
}
wordNumbers
cover
clickTimes
lastupdate
createtime
}
}
#結果
{
"data": {
"book": {
"bookName": "斗戰狂潮",
"author": "骷髏精靈",
"bookType": {
"typeId": "48",
"typeName": "修真文明",
"summary": "修仙覓長生,熱血任逍遙,踏蓮曳波滌劍骨,憑虛御風塑聖魂!"
},
"wordNumbers": 2547900,
"cover": "//qidian.qpic.cn/qdbimg/349573/1003694333/180",
"clickTimes": 3,
"lastupdate": "2018-02-23T00:00:00",
"createtime": "2018-02-23T11:33:57"
}
}
}
sql語句?各種定制化接口?不存在的,一個GraphQL查詢搞定,美滋滋。
繼續來一發,排行榜表和作品表,排行榜表記錄了book_id,前端展示只需這樣:
query rank {
rankList(rankTypeId: 1,first: 2) {
edges {
node {
bookId
book {
bookName
author
wordNumbers
}
order
rankTypeId
createtime
}
}
}
}
**自動根據節點id查詢對應node信息,多帥哦**
{
"data": {
"rankList": {
"edges": [
{
"node": {
"bookId": 1,
"book": {
"bookName": "斗戰狂潮",
"author": "骷髏精靈",
"wordNumbers": 2547900
},
"order": 1,
"rankTypeId": 1,
"createtime": "2018-02-24T00:28:37"
}
},
{
"node": {
"bookId": 2,
"book": {
"bookName": "就問你氣不氣",
"author": "秋刀斬魚",
"wordNumbers": 1736500
},
"order": 2,
"rankTypeId": 1,
"createtime": "2018-02-24T00:32:23"
}
}
]
}
}
}
這么寫下來,GraphQL果然還是很不錯的。。
上個鏈接GraphQL