Architecture web服务应该允许用户创建和更新,还是只保存?
当设计一个允许服务使用者保存和获取复杂数据类型(比如Foo)的web服务时,服务应该公开Create(Foo)和Update(Foo)服务调用,还是只公开save(Foo)服务调用?如果Save(Foo)更好,那么用户是否能够预测系统是否将创建或更新(基于Foo的内容),或者系统是否应该仅仅根据Foo是否存在来创建或更新 假设我们想要一个简单的界面,不想让消费者对多种方法感到困惑,但我们也希望确保不会出现意外的结果 我可以看到每一个的优点和缺点,但在我偏袒你的答案之前,你认为呢 最后,有关于这个主题的文章吗Architecture web服务应该允许用户创建和更新,还是只保存?,architecture,web-services,soa,Architecture,Web Services,Soa,当设计一个允许服务使用者保存和获取复杂数据类型(比如Foo)的web服务时,服务应该公开Create(Foo)和Update(Foo)服务调用,还是只公开save(Foo)服务调用?如果Save(Foo)更好,那么用户是否能够预测系统是否将创建或更新(基于Foo的内容),或者系统是否应该仅仅根据Foo是否存在来创建或更新 假设我们想要一个简单的界面,不想让消费者对多种方法感到困惑,但我们也希望确保不会出现意外的结果 我可以看到每一个的优点和缺点,但在我偏袒你的答案之前,你认为呢 最后,有关于这个
(搜索引擎帮助:创建vs.保存,更新vs.保存,创建/更新vs.保存)这完全取决于您想要如何设计它。我使用过的最好/最成功的web服务API之一是Salesforce.com发布的API。他们有3个服务电话:
虽然数量不多,但在大多数情况下,它不仅仅是完成工作。>“这完全取决于您想要如何设计它。”我正在寻求关于如何设计它的建议。那么,您的答案是提供两种方法?我想说您需要两个不同的调用-create()和update(),其中update()需要设置一个ID字段。我之所以提出upsert(),是因为我发现它在从外部系统进行同步时很有用。但是,web服务必须支持外部id字段,这样调用才有意义。无论如何都不是必要的。