[英]Retrieving and caching nested objects from a REST API
我有一系列嵌套对象,通过REST API公开,如下所示:
class Category
{
int id;
string name;
List<Subcategory> subcategories;
}
class Subcategory
{
int id;
string name;
List<Product> products;
}
class Product
{
int id;
string name;
List<Model> models;
}
class Model
{
int id;
string name;
Dictionary<string, string> metadata;
}
可以使用以下端点通过REST API访问这些对象
// get a list of categories
GET /categories
// get a category
GET /categories/:id
// Get subcategories for a product
GET /categories/:categoryId/subcategories
// Get a subcategory
GET //categories/:categoryId/:subcategoryId
//Get products under a subcategory
GET /categories/:categoryId/:subcategoryId/products
//Get a product
/categories/:categoryId/:subcategoryId/:productId
//Get models
/categories/:categoryId/:subcategoryId/:productId/models
Get a model under a product
/categories/:categoryId/:subcategoryId/:productId/:modelId
我在客户端使用什么设计模式设计数据访问层? 请注意,我的客户端只读取这些对象,它不会写入它们。 DAO? 库? 我两者之间有点困惑,不知道这里适用什么。
对于具有复杂行为的应用程序(通常是业务应用程序), 存储库是更好的选择,因为大多数情况下业务对象与其持久化的方式不同。
虽然存储库是一个概念,但它实现为DAO,至少从应用程序的角度来看。 事实上,用于处理存储的每个对象都是DAO,但Repository是一个专门的DAO。 它仅处理Business Objects,并充当其他低级DAO(例如ORM)的外观。
存储库集中了服务的访问逻辑,并为单元测试提供替换点。 调用服务通常很昂贵,并且可以从存储库中实现的缓存策略中受益。 ( MSDN上的存储库模式 )
至于缓存,您可以:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.