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