Restful资源和关系数据库是不兼容的

时间:2014-01-25 17:05:40

标签: api rest design-patterns api-design

假设我有一个包含100多个表的关系数据库。每个表都模拟某种实体(人,地址,车辆,狗等)。说我也有一个宁静的API和一群想要将数据发布到这个数据库的人。很多时候,这些数据是作为XML包或来自Web表单的POST数据或类似的东西。 有时我们需要发布到数据库的所有表格,有时候是大多数,有时是一些,有时是一个。

现在要求我们的客户通过宁静的方式将多个资源数据块发布到100多个表持久性中

POST /person
POST /email
POST /vehicle
POST /insurance

太疯狂了!所以我们可以有一个资源,而不是

POST /auto-record
{ post body of key values for all the tables needed to make an 'auto-record' }

它将连接到某种业务逻辑,该逻辑知道要插入所需数据库的许多表。好,太棒了。但是现在我正在思考它,这个设计是否遵循开放/封闭原则?如果我们需要更新/添加/删除“自动记录”,那么我们就会搞砸我们的客户。

restful api如何处理资源分组?或者根本不是吗?还有其他选择吗?

1 个答案:

答案 0 :(得分:0)

您可以实现更多版本的RESTful API资源/auto-record。现在,将您的资源URI修改为/v1/auto-record。当有功能更改请求时,您只需向客户提供新资源/v2/auto-record。旧功能将保留在/v1/auto-record,新用户将在v2/auto-record拥有所需的功能。