0

我是 ASP.NET Web API 的新手,并且已经研究了一段时间。诚然,我有决策麻痹症。我想为数据库中大约有 250 个表的系统制作一个类似 REST 的 API。它基本上是一个带有 UI 和数据访问层的 2 层系统,不使用业务对象或 ORM。

我无法决定我的 Web API 控制器是否应该接受/返回:

a)名称/值对的IDictionary,我将其打包成sql参数并传递给数据访问层并返回一个序列化的ado.net数据表

b) 强类型复杂对象(PO​​CO 对象)。例如:所有属性都与数据库中的字段匹配的帐户类。

如果我必须为系统中的每个表创建 POCO 类,那么将有 250 多个类基本上什么都不做,除了打包数据并将其传递给我们的数据访问层。

此外,似乎我需要为我想通过 Web Api 公开的数据库中的每个表创建一个 ApiController,因为每个路由只有 GET、POST、PUT、DELETE?请帮忙,把头撞在桌子上。

4

1 回答 1

0

请看下面的答案:

1.**如果您的资源仅支持 GET 方法,则使用 **"IDictionary of name/value pairs"很好。如果您希望用户发布或更新数据,您将如何验证数据?另外,如果你想添加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

于 2014-05-05T00:08:22.110 回答