restQL微服務(wù)查詢語(yǔ)言
微服務(wù)查詢語(yǔ)言 restQL 旨在簡(jiǎn)化客戶端訪問(wèn) RESTful 微服務(wù)的常用場(chǎng)景,包括并行調(diào)用和鏈?zhǔn)秸{(diào)用。
由拉丁美洲最大的電子商務(wù)公司 B2W 開發(fā)的 restQL,是為了避免 Falcor 和 GraphQL 這兩個(gè)更為人熟知的數(shù)據(jù)查詢和管理框架的一些限制而誕生的。
與其他查詢語(yǔ)言類似,restQL 語(yǔ)句描述了要獲取的資源,并用參數(shù)進(jìn)行過(guò)濾。比如:
from hero with name = "Restman"
默認(rèn)情況下,查詢是并行執(zhí)行的,無(wú)須任何特殊語(yǔ)法。對(duì)于更復(fù)雜也更常見的場(chǎng)景,比如鏈?zhǔn)秸{(diào)用或者多路復(fù)用調(diào)用(如下例所示)也非常清晰直觀。
from hero with name = "Restman" from sidekick with hero = hero.id
對(duì) restQL 查詢的解析和響應(yīng)由 restQL 服務(wù)端處理。restQL 服務(wù)端是用 Clojure 實(shí)現(xiàn)的,它充當(dāng)著提交 restQL 查詢的客戶端和后端 API 之間的橋梁。所有的配置信息都是存在服務(wù)端的,以匹配資源名稱和相應(yīng)的調(diào)用端點(diǎn)(endpoint)。由于 restQL 服務(wù)端開放了標(biāo)準(zhǔn)的 REST 調(diào)用端點(diǎn),所以不需要專門處理的客戶端。
評(píng)論
圖片
表情
