最近我在与Rest架构挣扎:p和i通常会引发很多问题。 假设我有一个名为“user”的资源,该用户可以拥有一个汽车列表。 我试图立即在数据库中插入该用户和他的汽车列表。我知道我必须使用POST HTTP动词执行此操作。但是我怎么做到这一点?我应该只发送一个带有用户标识的URL和以某种方式编码的汽车列表,还是应该使用“用户”资源来插入用户,然后为每辆汽车调用名为“car”的资源中的POST URL? / p>
第二种方法存在问题。必须使用数据库事务实现此过程。如果在插入汽车时出现问题,我希望用户不要在数据库中登记。
我知道restFul架构必须是无状态的,那么如何使用数据库功能实现这样的事务呢?我知道我可以实现某种交易,但我希望它更自动化。
提前致谢。
答案 0 :(得分:0)
您可以通过多种方式执行此操作,具体取决于您在前端和后端使用的语言以及您计划如何发送此数据。假设您正在使用PHP和MySQL,我会解决这个问题:
user=123&cars[]=1&cars[]=2&cars[]=3
(我正在使用var cars[]
,因为这将向PHP发送数组,您可以通过将输入字段命名为{{1}来实现此目的}})然后我会有一张表格,说明了用户与汽车之间的关系,其中包括以下内容:
CREATE TABLE box_to_category( user_id int(11)NOT NULL, car_id int(11)NOT NULL );
在此表中,我将清除与该用户关联的所有汽车,然后将新车作为POST后添加到后端(cars[]
将与user_id
中的user
相关联{1}}表格和users
将与car_id
表格中的car
相关联。
这是一个简单的设置。