GraphQL 優勢之處


一次查詢,搞定需求

舉個例子,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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM