创建与其他实体相关联的实体的正确方法是什么?我找不到任何有关如何使用FOSRestBundle包在Symfony中完成或如何完成的来源.
让我们有实体Car与Wheel实体.
如何在一个请求中创建带轮子的汽车?
url: foo.com/cars POST
数据: {car:{name="porsche", wheels:[{name:"fr"}, {name:"fl"}] }}
这是怎么做的正确方法?我读了一些关于LINK和UNLINK http方法的内容,但是需要发送多个请求才能创建所有轮子,然后将它们链接在一起.
如何制造属于多辆车的车轮?
url: foo.com/wheels POST
数据: {wheel:{name="super wheel", cars:[{id:1}, {id:2}] }}
在这种情况下,可能使用LINK标头是合适的.但是看完之后这个文章,它会要求对所有岗位解析LINK头,并提出为好,使之昂贵和笨重.
我写信给提到的文章的作者.这是他的答案:
我想你可以在一个请求中发送包含你的轮子和汽车的数据.这里最重要的是要务实.构建REST API没有"明确"的规则.
当资源已经存在时,LINK/UNLINK非常有用,并且您想要"链接"它们,换句话说,您希望在它们之间添加"关系",例如用户的友谊.
关于你的第二个问题,如果汽车存在,你可以首先创建你的车轮,然后将它"链接"到你的车上.但这意味着有两个请求执行此操作(您可以在一个请求中添加多个链接头),或者更好的是您可以发送一个带有链接头的POST请求:一个请求将它们全部统治:p
另一个选择是将汽车的ID引用到您的车轮数据中.我觉得这样做也没关系.