如何处理CREATE和DUPLICATE的CRUD操作

时间:2017-12-28 16:21:01

标签: rest wcf crud

我有一个接口,可以在CRUD api中获取Action对象。要首先创建一个Action,您必须调用我的CreateAction()工厂方法。

复制,我应该让用户调用重复的方法吗?客户端可以轻易地复制每个字段,但可以在以后添加字段,客户端也不会知道它们。

现在我只是让客户端调用Create来获取第二个实例,然后将所有内容复制到名称之外。这样可行。但它感觉不对,因为对象可能会发展,而客户端只会复制它所知道的字段。

1 个答案:

答案 0 :(得分:1)

  

但感觉不对,因为对象可能会发展,而客户端只会复制它所知道的字段。

这是一种很好的感受,培养它。

  

客户端可以简单地复制每个字段,但可以在以后添加字段,客户端也不会知道它们。

考虑一下如何在浏览器中运行网页。

客户端可能会获得一些资源,然后四处寻找可以让客户端请求重复的可供性。这可能看起来像是一个新资源的链接,它会向客户提供一个表单。当客户端提交表单时,该消息会向服务器传达创建副本的请求。

作为集成协议,客户端部分看起来像

  • 获取原始资源的表示
  • 查找可以访问复制表单的链接,然后按照
  • 进行操作
  • 查找表单,然后提交

关键点一:如果您不希望客户端复制资源,只需从表示中删除链接即可。

关键点二:您可以向表单添加可编辑内容,这将允许理解语义的客户端进行自己的更改。不理解语义的哑客户端将忽略这些字段,因此您需要确保提供保留向后兼容性的默认值。