我是ASP.NET Web API的新手,现在已经研究了一段时间了。不可否认,我有决定瘫痪。我想为数据库中包含大约250个表的系统制作类似REST的API。它基本上是一个带有UI和数据访问层的2层系统,不使用业务对象或ORM。
我无法确定我的Web API控制器是否应该接受/返回:
a)名称/值对的IDictionary,我将其打包成sql参数并传递给数据访问层并返回一个序列化的ado.net数据表
b)强类型复杂对象(POCO对象)。例如:帐户类,其所有属性都与数据库中的字段匹配。
如果我必须为系统中的每个表创建POCO类,那么除了打包数据并将其传递给我们的数据访问层之外,还有250多个类基本上什么都不做。
此外,似乎我需要为我希望通过Web Api公开的数据库中的每个表创建一个ApiController,因为每个路由只有GET,POST,PUT,DELETE?请帮忙,把头撞在桌子上。
答案 0 :(得分:0)
请参阅以下答案:
1. **如果您的资源仅支持GET方法,则使用**"名称/值对的IDictionary" 即可。如果您希望用户发布或更新数据,您将如何验证数据?另外,如果你想添加HATEOAS,你会怎么做?在扩展方面,您将如何支持嵌套对象层次结构,如下所示:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public string Category { get; set; }
public decimal Price { get; set; }
public IList<PurchaseDetail> PurchaseHistory { get; set; }
}
public class PurchaseDetail
{
public int Id { get; set; }
public DateTime PurchaseDate { get; set; }
public decimal Cost { get; set; }
}
2. 通过定义不同的路由,每个资源可以有多个GET,POST等。更多来自此链接http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api