当设计允许服务的使用者保存并获得复杂数据类型(比如Foo)的Web服务时,服务是否应该公开Create(Foo)和Update(Foo)服务调用,或者服务是否应该公开只是一个Save(Foo)服务电话?如果Save(Foo)更好,那么用户是否能够预测系统是创建还是更新(基于Foo的内容),还是系统应该根据Foo是否存在来创建或更新?
假设我们想要一个简单的界面,并且不希望将消费者与多种方式混淆,但我们也希望确保不会出现意外结果。
我可以看到每个人的利弊,但在我偏向你的答案之前,你怎么看?
最后,有没有关于这个主题的文章?
(搜索引擎帮助:创建与保存,更新与保存,创建/更新与保存)
答案 0 :(得分:2)
完全取决于您想要如何设计它。我使用过的最好/最成功的Web服务API之一是Salesforce.com发布的API。他们有3个服务电话:
允许他们这样做的一件事是每个对象都有一个Salesforce生成的ID字段。
如果您有兴趣,这里列出了所有核心网络服务电话:
没有太多,但在大多数情况下,这不仅仅是完成工作。