GraphQL
Facebook開發的數據查詢語言 来自维基百科,自由的百科全书
GraphQL是一個開源的,面向API而創造出來的資料查詢操作語言以及相應的執行環境。[2] 於2012年仍處於Facebook內部開發階段,直到2015年才公開發布。 2018年11月7日,Facebook將GraphQL專案轉移到新成立的GraphQL基金會(隸屬於非營利性的Linux基金會)。[3][4]
此條目翻譯品質不佳。 (2018年11月8日) |
![]() | 此條目可參照英語維基百科相應條目來擴充。 |
![]() | |
開發者 | Facebook及社群 |
---|---|
首次釋出 | 2015年9月14日 |
目前版本 | 2018年6月[1] |
原始碼庫 | github |
程式語言 | 在 JavaScript、Ruby、Scala和其他各種語言中實現。 |
作業系統 | 跨平台 |
授權條款 | |
網站 | graphql |
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
}
]
}
}
參見
- Query by Example
參考文獻
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.