RestFul Web服务和数据库事务

时间:2011-11-09 10:59:29

标签: php rest

最近我在与Rest架构挣扎:p和i通常会引发很多问题。 假设我有一个名为“user”的资源,该用户可以拥有一个汽车列表。 我试图立即在数据库中插入该用户和他的汽车列表。我知道我必须使用POST HTTP动词执行此操作。但是我怎么做到这一点?我应该只发送一个带有用户标识的URL和以某种方式编码的汽车列表,还是应该使用“用户”资源来插入用户,然后为每辆汽车调用名为“car”的资源中的POST URL? / p>

第二种方法存在问题。必须使用数据库事务实现此过程。如果在插入汽车时出现问题,我希望用户不要在数据库中登记。

我知道restFul架构必须是无状态的,那么如何使用数据库功能实现这样的事务呢?我知道我可以实现某种交易,但我希望它更自动化。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以通过多种方式执行此操作,具体取决于您在前端和后端使用的语言以及您计划如何发送此数据。假设您正在使用PHP和MySQL,我会解决这个问题:

  1. 准备好数据,所以类似user=123&cars[]=1&cars[]=2&cars[]=3(我正在使用var cars[],因为这将向PHP发送数组,您可以通过将输入字段命名为{{1}来实现此目的}})
  2. 将此帖子发布到您的后端
  3. 您的后端将处理该用户并将其添加到数据库(如果他们不在那里)。
  4. 然后我会有一张表格,说明了用户与汽车之间的关系,其中包括以下内容:

    CREATE TABLE box_to_category(   user_id int(11)NOT NULL,   car_id int(11)NOT NULL );

  5. 在此表中,我将清除与该用户关联的所有汽车,然后将新车作为POST后添加到后端(cars[]将与user_id中的user相关联{1}}表格和users将与car_id表格中的car相关联。

  6. 这是一个简单的设置。