GraphQL是一種常用的查詢語言,用於讀取和修改API中的數據,是走向無外設網站趨勢中的一項關鍵技術。 它允許Web構建商使其API層靈活,強大和高效。 但是,開發人員在網路邊緣暫存GraphQL API時面臨挑戰。 因此,Edgio開發了一種解決方案,使GraphQL的邊緣暫存變得簡單,並允許團隊在無伺服器環境中託管GraphQL伺服器。 GraphQL暫存填補了無外設和API優先Web應用程式市場的空白,證明瞭Layer0和Limelight聯合力量的價值。
什麼是GraphQL
GraphQL查詢語言在傳統的REST API上得到了改進,並且在開發人員中獲得了巨大的發展和採用。 GraphQL最初是在Facebook和後來的開放源代碼中孵化的,它提供聲明性的,高效的數據提取,顯著提高了性能。 最重要的是,客戶端和伺服器之間的強類型架構使團隊能夠更快,獨立地重複其API,而不會引起版本控制問題。
GraphQL可與任何後端框架或程式語言一起使用。 這一優勢與強大的工具(即強大的打字功能和內置對自省的支援)相結合,使得GraphQL在使用無外設或API優先架構的企業組織(如Twitter和Airbnb)的開發人員中特別受歡迎。 在JS年度調查中,與任何其他數據層解決方案相比,GraphQL在開發人員的認知度(98%),滿意度(94%)和興趣(87%)方面的得分最高。
邊緣GraphQL的暫存問題
傳統CDN和暫存軟體是圍繞REST API構建的,在REST API中,只有HTTP GET請求可以暫存,並且暫存密鑰可以從REST URL派生。 不幸的是,GraphQL使用更復雜的HTTP POST格式,並且必須從HTTP正文中確定暫存性和暫存密鑰。 儘管只需切換即可緩存HTTP POST,這一點很好,但這並不是那麼簡單。 要暫存GraphQL,CDN必須能夠解析和理解GraphQL格式—而不能解析。 因此,GraphQL性能對開發人員來說是一項挑戰。
開發團隊通常會花時間從零開始構建變通辦法以暫存GraphQL—即使如此,暫存也不是最佳選擇。 管理不當的GraphQL會導致高速暫存命中率低。 但是,如果做得正確,在邊緣暫存GraphQL會帶來更快,更可靠和可擴展的API。 Layer0讓這一切變得簡單。
Layer0解決了網路邊緣的暫存挑戰
Layer0提供對邊緣暫存GraphQL API的完全支援,從而在源站實現更好的性能和更少的流量。 Layer0通過向EdgeJS (一種高性能,基於JavaScript的邊緣邏輯聲明語言)添加GraphQL解析和對POST方法的支援,解決了在網路邊緣暫存GraphQL API的關鍵挑戰。 借助EdgeJS,Web構建器可以根據其GraphQL查詢和HTTP頭(如Cookie和身份驗證)的屬性創建強大的自定義暫存邏輯。
通過Layer0的EdgeJS,開發人員可以從GraphQL響應緩存電子商務API中的產品ID等信息。 它還可以緩存屬性,例如嵌入在請求標頭中的語言,貨幣和個性化首選項。 這些可由堆棧中尚未遷移到GraphQL的其他非GraphQL組件定義。
暫存後,Layer0允許您通過為每個暫存響應分配代理鍵,從邊緣清除單個或集合查詢。 例如,在電子商務應用程式中,開發人員可以使用EdgeJS讓團隊能夠按產品ID,產品類別或查詢Layer0 (Edgio)控制臺或API中的任何其他產品屬性選擇性地清除暫存。
要更詳細地了解這一點,請觀看下麵的演示,其中介紹瞭如何使用流行的Next.js框架,Apollo Server和Layer0將REST API轉換為GraphQL並在邊緣添加暫存。
實現100%的高速暫存命中率
沒有其他CDN能像Layer0一樣努力工作,使團隊能夠最大程度地提高其暫存命中率。 EdgeJS使開發人員可以輕鬆地從其應用程式中配置暫存,從而使開發人員能夠暫存以前不可暫存的。
EdgeJS靈活且功能強大,支援過時的暫存功能,如重新驗證和替代密鑰。 我們的客戶已經使用替代密鑰將Layer0連接到他們的訂單和內容管理系統,以便在庫存,價格或內容發生變化時從暫存中清除單個產品頁面。 這使他們能夠在單個項目更改時保持所有其他頁面和API的高高速暫存命中率。
此外,該平臺還包括在部署後自動對最高流量內容進行暫存預熱。 Layer0網路可以智能地協調POP之間的路由和暫存,以最大程度地提高暫存命中的可能性。 如果POP沒有數據,則在將請求轉發到源伺服器之前,它會從另一個POP請求數據。 為了輕鬆監控網站性能和高速暫存命中率,開發人員可以訪問可觀察性和關鍵指標。 對於粒度,該平臺主動突出顯示需要改進的應用程序路由。
Edgio深受全球最大流媒體公司的信賴,包括英超聯賽足球俱樂部和BYJU。 Edgio在全球擁有超過135個入網點(POP),超越CDN的平均功能,並協調數據以加熱暫存。
GraphQL的無伺服器託管
Edgio還提供無伺服器服務,包括GraphQL託管。 團隊可以管理並將執行時調用提交到Layer0上無伺服器環境中託管的GraphQL伺服器,從而消除對基礎設施和規模的擔憂。
提高Edgio的工作效率,性能和安全性
Layer0幫助Web構建人員團隊提高開發人員的工作效率,提高網站性能並提高安全性。 Layer0可讓您在整個開發生命週期中輕鬆開發和維護邊緣邏輯,並通過動態內容的預測性預取來提供亞秒級網站,使其成為開發團隊喜愛使用的CDN。
Layer0包括開發和DevOps團隊實施無外設或Jamstack架構所需的一切,包括託管,無伺服器,可觀察性,RUM和CI/CD集成。 團隊可以靈活地利用Layer0。 他們可以使用它來暫存他們的GraphQL API,在無伺服器環境中執行他們的GraphQL伺服器,或者託管他們的整個無外設應用程式。 Layer0還具有強大的路由選項,使團隊能夠以零敲碎打的方式逐步將傳統應用程式遷移到無外設或API優先架構。
對GraphQL的支援和與傳統系統的兼容性使Edgio成為遷移到具有傳統和現代組件混合的GraphQL的大型企業的理想選擇。