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