GraphQL

Facebook開發的數據查詢語言 来自维基百科,自由的百科全书

GraphQL

GraphQL是一個開源的,面向API而創造出來的資料查詢操作語言以及相應的執行環境。[2] 於2012年仍處於Facebook內部開發階段,直到2015年才公開發布。 2018年11月7日,Facebook將GraphQL專案轉移到新成立的GraphQL基金會(隸屬於非營利性的Linux基金會)。[3][4]

快速預覽 開發者, 首次釋出 ...
GraphQL
Thumb
開發者Facebook及社群
首次釋出2015年9月14日 (2015-09-14)
目前版本2018年6月 (2018-06)[1]
原始碼庫github.com/facebook/graphql
程式語言JavaScriptRubyScala和其他各種語言中實現。
作業系統跨平台
授權條款 編輯維基數據鏈結
網站graphql.org
關閉

GraphQL相較於REST以及其他web service架構提供了一種更加高效、強大和靈活的開發web APIs的方式。它通過由客戶端根據所需定義資料結構,同時由伺服器端負責返回相同資料結構的對應資料的方式避免了伺服器端大量冗餘資料的返回,但與此同時也意味著這種方式不能有效利用起查詢結果的web快取。GraphQL這種查詢語言所帶來的靈活性和豐富性的同時也增加了複雜性,導致簡單的APIs有可能並不適合這種方式。[5][6][7]

GraphQL支援資料讀取、寫入(操作)和資料變更訂閱(即時更新)。[8]

主要的GraphQL客戶端有Apollo Client[9] 和 Relay.[10] GraphQL的伺服器端在多個語言都有實現包括Haskell, JavaScript, Python,[11] Ruby, Java, C#, Scala, Go, Elixir,[12] Erlang, PHP, R,和 Clojure.

2018年2月9日GraphQL的部分模式定義語言(SDL)規範制定完成。

例子

POST請求:

{
    orders {
        id
        productsList {
            product {
                name
                price
            }
            quantity
        }
        totalAmount
    }
}

回應:

{
    "data": {
        "orders": [
            {
                "id": 1,
                "productsList": [
                    {
                        "product": {
                            "name": "orange",
                            "price": 1.5
                        },
                        "quantity": 100
                    }
                ],
                "totalAmount": 150
            }
        ]
    }
}

參見

參考文獻

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.