假設數我有兩個falcor的路由減少SQL查詢與falcor路由器引用
route: 'users[{ranges}]'
和
route: 'UserById[{integers:ids}]["name","email"]'
而users
返回引用到UserById
-route。如果我再火查詢
get('users[0..10]["name","email"]')
針對這一點,路由器首先評估users[0..10]
部分將執行在數據庫上SELECT id FROM users LIMIT 10
並返回相應的標識。然後路由器將使用這些ID與特定路線一起填充實際值。如果沒有對UserService-implementation(對於任何類似的情況,例如地址,成本類型等需要重複)進行不必要的緩存,這將對我的持久性後端產生至少兩個查詢,而使用單一的更傳統的方法RESTful端點
GET /users/?offset=0&limit=10
很可能會滿足一個。
是否有一個通用的最佳實踐方法如何在此場景中優化數據庫查詢通過路由器和後端服務之間的一些聰明的緩存?返回模型的users
路徑中的完整信息是一種禁忌行爲,因爲我們的用戶可能有鏈接到朋友的圖表鏈接,這些朋友本身就是用戶。