REST API中对象的设计模式?

时间:2012-02-08 08:20:17

标签: c# wcf design-patterns rest

我已经使用WCF Web API预览构建了一个REST API,我想构建一个包含您传递给此API的类的库(只是为了让.Net开发人员生活更轻松)。应该是没有太多功能的简单POCO类。

但是在接收方方面,我可以为这些类添加一些功能。我有一个例子如下:

[WebInvoke(UriTemplate = "", Method = "POST")]
public Supertext.API.Order Create(Supertext.API.Order apiOrder)
{

这是POCO课程的一个例子:

public class Order
{
    public string Service { get; set; }

    public string OrderTitle { get; set; }

    public string Currency { get; set; }
}

现在,在服务器端扩展此类的好方法是什么? 我想使用子类是行不通的。 代表们?
实际上有两个不同版本的课程?一个用于客户端,一个用于服务器?

其他人做了什么?

1 个答案:

答案 0 :(得分:2)

向此POCO类添加额外功能的问题是您将其转换为域对象。现在,这个域对象的性质将受到这样一个事实的限制:从本质上讲,这个类充当了操作接口的定义。更改此类的详细信息可能会破坏客户端。

将此类纯粹保留为数据传输对象是一个更清晰的模型,其单一职责是帮助将线格式桥接到对象并使用映射器(如AutoMapper)映射来自DTO的数据到一个真正的域对象。真正的域对象完全在您的控制之下,您可以愉快地重构它而不会威胁到服务使用者的级联效果