問題描述GraphQL可以實現獲取多個資源只用一個請求,這個應該是覆蓋不到所有場景的吧,很多情況下我們并不能做到一個頁面只寫一次GraphQL查詢,就可以獲取這個頁面需要的所有數據的問題出現的環境背景及自己嘗試過哪些方法有一種場景:一個頁面里展示的信息,info1,info2,info3,前端需要請求多個接口,info1對應的接口A中的a字段,info2對應的接口B中的b字段,info3對應的接口C中的c字段///api/user/A{id:1111,name:'張三',a:'當前頁面要展示的info1',b:'b'//其他字段}///api/order/B{id:2222,name:'hahah',a:'a'b:'當前頁面要展示的info2',//其他字段}///api/system/C{id:3333,name:'hehe',a:'a'c:'當前頁面要展示的info3',//其他字段}這個時候,稍微有點脾氣的前端,都會去找后端撕逼,前端A:“就這三個字段,你還讓我請求三個接口,你不能一個接口都返回給我嗎”,后端B:“哎,我也想啊,但是xxxxx,所以我這邊不好改,”,...最后那就這樣吧。當然,我舉得這個例子是一個很簡單的場景,實際開發過程中要比這個還要復雜;如果使用GraphQL的話,前端自己寫查詢,這個頁面需要哪些需哪數據,后端就返回給哪些數據,這是考慮到后端所有的接口都在同一個域下面,但是一般比較復雜的系統,后端都會分為不同的域,用戶域,商品域,基礎模塊域,交易域等等,這時即使用了GraphQL也可能后端C:“你看其他都不是我負責的域,我要是自己給你封裝一個,我自己底層需要經過xxxxx等復雜的步驟去獲取其他域的,這個很復雜,你還是直接去他哪個域去查詢吧”,有兩種方法,你就再多寫一個GraphQL自己寫一個node中間層,中間層來處理這些接口數據的聚合,換句話說,中間層來聚合成一個GraphQL查詢來返回給前端,中間層分別取調用服務端的三個接口,然后把三個接口返回的數據聚合成前端所需要的疑問就是,有沒有更好的辦法來實現調用一個接口查詢多個資源的問題?
萌新求教!GraphQL可以實現獲取多個資源只用一個請求,這個是能覆蓋所有場景的么,我們應該怎么做取舍大佬們有什么好的建議?
白衣非少年
2019-07-27 00:12:43