GraphQL 優勢之處
- 2019 年 10 月 5 日
- 筆記
一次查詢,搞定需求
舉個例子,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