將GraphQL稱為數據查詢的范式轉變是輕描淡寫的說法。這更像是走路和飛行的區(qū)別——沒有可比性。要理解為什么,成都小程序開發(fā)讓您看看傳統(tǒng)的RESTAPI與GraphQL有何不同。
傳統(tǒng)的REST查詢需要多個請求來獲取所有必要的信息,并且隨著您的擴展,您的應用程序將因管理這些請求而陷入困境。使用GraphQL,您可以通過一個請求準確查詢您需要的內容,并輕松表達復雜的數據需求——更不用說對實時訂閱的潛在支持了。
因此,如果改進的性能、更簡單的跨客戶端集成、更快的開發(fā)時間和更低的維護成本聽起來很有吸引力,請加入我們,深入學習有關GraphQL的一切。
GraphQL是Facebook創(chuàng)建的一種查詢語言,用于構建和連接API。它允許開發(fā)人員在一次請求中定義客戶端需要的數據。GraphQL不是為客戶端可能需要的每種類型的數據都設置端點,而是允許您進行一次調用并快速高效地獲取所需內容。與傳統(tǒng) RESTAPI相比,它的優(yōu)勢包括:
更快的開發(fā)時間:GraphQL的語法更易于學習和實施,因此開發(fā)人員可以減少編寫代碼的時間。
改進的性能:允許客戶端在一個請求中詢問他們需要的數據可以縮短服務器的響應時間。
降低維護成本:單個GraphQL端點簡化了服務器維護并減少了監(jiān)視多個端點的需要。
GraphQL的核心是用于構建API。它使用所謂的類型系統(tǒng)來定義數據及其訪問方式。使用GraphQL,用戶可以在一個請求中定義他們需要的數據,并將其作為JSON響應返回。
GraphQL由三個組件組成:
查詢語言——這是開發(fā)人員用來定義客戶端需要從API獲取哪些數據的語言。
架構定義語言 (SDL) – 這是開發(fā)人員用來定義可從API請求的數據結構的語言。
解析器——服務器使用它來處理GraphQL查詢并返回請求的數據。
GraphQL還非常靈活,允許開發(fā)人員在不更改底層代碼的情況下從查詢中添加或刪除字段。這減少了對多個端點的需求并簡化了數據結構的更改。
讓我們看一個GraphQL工作原理的例子。假設您的服務器有兩種類型的書籍:小說和非小說。使用傳統(tǒng)的 RESTAPI,您需要為每種類型的圖書發(fā)出兩個單獨的請求。使用GraphQL,您可以在一個請求中定義客戶端需要的數據。
要進行GraphQL查詢,您必須首先定義所需的數據類型。這是通過所謂的schema完成的。模式提供了可用數據的結構及其組合方式。一旦定義了類型系統(tǒng),客戶就可以使用查詢訪問他們需要的東西。
讓我們看看GraphQL查詢在實際中是什么樣子的。下面是一個GraphQL查詢的例子:
query {
FictionBooks {
name
author
yearPublished
}
NonFictionBooks {
name
author
yearPublished
}
}
此查詢返回客戶端在一個響應中請求的內容。然后服務器使用解析器處理請求并返回請求的內容。GraphQL使數據查詢更快更容易,允許開發(fā)人員構建強大的API,為客戶快速提供他們需要的東西。
我們已經了解了GraphQL、它的作用以及它的工作原理。但是是什么讓GraphQL如此特別呢?
首先,GraphQL通過允許客戶端對他們需要的內容發(fā)出一個請求來簡化數據查詢。這節(jié)省了時間和資源,因為服務器不需要發(fā)出多個請求來獲得客戶端想要的東西。
GraphQL還提供實時訂閱支持,允許客戶端在服務器上執(zhí)行操作時接收更新。這意味著應用程序可以更具反應性,在數據發(fā)生變化時為用戶提供近乎實時的數據。
最后,GraphQL被設計為與語言無關,這意味著它可以與任何編程語言一起使用。這使成都小程序開發(fā)人員可以更輕松地將GraphQL與他們現有的應用程序一起使用,并快速構建強大的API。
文章均為全美專業(yè)成都小程序開發(fā)公司,專注于成都小程序開發(fā)服務原創(chuàng),轉載請注明來自http://www.39247.cn/news/2654.html