保持RESTful

时间:2013-07-09 15:36:34

标签: rest

新的休息,甚至不知道REST是什么,我开始观看一些视频并拿起一本书来帮助我指导正确的方法。不幸的是,我的第一个版本完全拙劣,我很可能不得不打破任何使用该实现的客户。为了确保我不需要再次这样做,我需要你的帮助!

我在这里有一些我关注的数据库表: 'PrimaryBuyer'& 'AllBuyers' 他们共享大多数领域,但AllBuyers有一些主要没有的东西,反之亦然。每个主要买家在输入系统时都会获得一个独特的“CaseNumber”。然后,除了'SequenceNumber'之外,还使用它来识别'AllBuyers'。将此CaseNumber返回给Web服务的用户以存储以供将来使用。然而,序列号是基于它们在XML / JSON中的位置而暗示的。

指定这些表格 - >例如,如果我买车,我将成为主要买家,因此将进入BOTH Primary和AllBuyers表。但是,如果我的信用不好,我可以让我的配偶在贷款上签字。这将使她成为次要买家,并且她将完全进入“AllBuyers”表。

我目前有一个REST URI设置为'/ buyer /',它要求立即输入所有买家的所有信息。同样,如果我要对此URI进行更新,则在两个表中都会更新主节点,并且有效负载中的任何辅助购买者都将替换以前存在的节点。

最终,无法直接访问表'PrimaryBuyer'和'AllBuyers'

我一直在努力想出解决这个问题的解决方案,但一直无法想到任何必须RESTful或对客户来说不痛苦的事情。认为用户应该(比如添加)POST到/ primarybuyer /,获取返回的casenumber,然后POST相同的信息然后一些到/ allbuyers /?是荒谬的吗?这似乎在带宽等方面有点愚蠢。事情应该保持现状吗?

希望回答这个看似简单的问题并不是太多的信息。

3 个答案:

答案 0 :(得分:0)

  

认为用户应该(比如说添加)POST是否是荒谬的   / primarybuyer /,取出返回的casenumber,然后POST相同   信息,然后一些到/ allbuyers /?

当您谈到“用户”时,您是指使用您服务的人或系统(浏览器)吗?

使用REST服务通常由系统完成,今天这意味着很多浏览器+ Javascript。为用户完成工作是在Web外观上完成的,而后面正在运行所有(Javascript)代码以进行适当的REST调用。

答案 1 :(得分:0)

为什么不将买方的信息作为序列化对象发布到其余服务器?您可以通过请求的参数部分执行此操作。当请求到达服务器时,您可以反序列化该对象,并实现更新数据库的逻辑。

有点像亚马逊是怎么回事? http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_AddInstanceGroups.html

答案 2 :(得分:0)

如果客户端应用程序执行POST /PrimaryBuyer,则没有理由说服务器也不能将该案例信息复制到/AllBuyers资源中,反之亦然。