當前位置:
首頁 > 知識 > 微服務查詢語言restQL已在GitHub上發布

微服務查詢語言restQL已在GitHub上發布

微服務查詢語言 restQL 已經成為了一個開源項目,使用MIT開源許可。restQL語言旨在簡化客戶端訪問RESTful微服務的常用場景,包括並行調用和鏈式調用。由拉丁美洲最大的電子商務公司B2W開發的restQL,是為了避免 Falcor 和 GraphQL 這兩個更為人熟知的數據查詢和管理框架的一些限制而誕生的。

Falcor僅適用於使用JavaScript的客戶端,而restQL對於任何支持HTTP REST調用的客戶端都適用。這意味著restQL也能適用於使用Swift和Java編寫的移動應用。儘管GraphQL現在已經是一種成熟的數據查詢語言,但是它不支持一些對RESTful服務來說簡單或約定俗成的特性,比如HTTP響應狀態碼或者本地瀏覽器緩存。

與其他查詢語言類似,restQL語句描述了要獲取的資源,並用參數進行過濾。比如:

fromherowithname ="Restman"

默認情況下,查詢是並行執行的,無須任何特殊語法。對於更複雜也更常見的場景,比如鏈式調用或者多路復用調用(如下例所示)也非常清晰直觀。

fromherowithname ="Restman"fromsidekickwithhero = hero.id

對restQL查詢的解析和響應由restQL服務端處理。restQL服務端是用Clojure實現的,它充當著提交restQL查詢的客戶端和後端APIs之間的橋樑。所有的配置信息都是存在服務端的,以匹配資源名稱和相應的調用端點(endpoint)。由於restQL服務端開放了標準的REST調用端點,所以不需要專門處理的客戶端。

在一篇 聲明restQL的博客文章 中,B2W Digital的IT經理,同時也是restQL的作者之一的Ricardo Mayerhofer提到,這個項目是在公司向微服務遷移的過程中誕生的。開發團隊很快從向微服務的遷移中受益,因為應用程序變得更小,相應的維護也更簡單。但是,前端代碼變得更加複雜了,因為需要向多個微服務發送請求,而不是像以前那樣只用向一個整體的服務發送一個請求。Ricardo總結了他們的經驗:「基於微服務的架構並不是什麼銀彈。儘管能給服務端團隊帶來直接的好處,但是它的特性給使用者帶來了複雜性和性能方面的挑戰。」在參考了Falcor和GraphQL後,restQL誕生了,並被證明有助於簡化客戶端對大量後端服務的訪問。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 PHP技術大全 的精彩文章:

TAG:PHP技術大全 |