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.