0

我目前正在.NET 中开发 web api。基本上我想知道 web api 接受域类但随后在 api 控制器中引用视图模型是否有效。

我个人认为这是不正确的,因为应该只接受域类,因为 web api 不应该对 View 模型类一无所知?

代码示例如下:

我使用了瘦控制器的方法,因此实现了执行所有处理的方法,在下面的情况下,它将添加到存储库中。

 public HttpResponseMessage Put(Staff staffMember)
    {
        command.Execute(new StaffVM { Staff = staffMember }, ModelState);

        return Request.CreateResponse(HttpStatusCode.OK, staffMember.name);            
    }

这是一个好方法吗?

4

1 回答 1

-1

当 API Put 方法接收到 put 请求时,默认模型绑定器将尝试将传入请求属性映射到模型中的属性。如果重新使用 MVC 控制器模型适合映射请求,那么我认为这是一种可以接受的方法。

这里唯一需要考虑的是,现在Api Put 方法的要求和使用的其他 Controller 方法Staff的要求是一致的,但是如果对原始控制器的要求发生变化,导致模型发生变化,您可能会破坏 API 方法并且映射可能失败。

另一方面,如果将来 API 控制器的需求意味着Staff模型不能再使用,您可以适当地替换 API 方法签名。

于 2013-07-30T10:17:10.947 回答