REST端点到链接实体

REST端点到链接实体,rest,Rest,我有一个cars实体和一个people实体,其余端点几乎匹配: curl -i -X POST -H "Content-Type:application/json" http://localhost:8888 /cars/ -d '{"name":"Fuson","color":"red","foo":"bar"}' curl -i -X POST -H "Content-Type:application/json" http://localhost:8888 /peopl

我有一个
cars
实体和一个
people
实体,其余端点几乎匹配:

curl -i -X POST -H "Content-Type:application/json" http://localhost:8888
     /cars/ -d '{"name":"Fuson","color":"red","foo":"bar"}'

curl -i -X POST -H "Content-Type:application/json" http://localhost:8888
     /people/ -d '{"name":"John","age":"27","foo":"bar"}'
我还有一个多对多的
人\u车实体

要添加记录,REST端点应该是什么样子?例如,人和车是在URL中还是在身体中?如果在URL中,是否有特定的顺序?它应该是
POST
PUT
还是
PATCH
?它应该返回什么


删除多对多记录的相同问题如何?

这取决于关系中的主记录是哪一方。它可以看到一个人可以拥有多辆车,因此要查看这些车,您应该引入以下端点:

GET /people/{id}/cars/
以及为给定人员添加新车:

POST /people/{id}/cars/

curl -i -X POST -H "Content-Type:application/json" http://localhost:8888
     /people/{id}/cars/ -d '{"carId": someCarId}'
您还可以反转(或实现两者)关系,并将人员添加到特定车辆:

POST /cars/{id}/persons/

curl -i -X POST -H "Content-Type:application/json" http://localhost:8888
         /cars/{id}/persons/ -d '{"personId": somePersonId}'

然后,第二个链接将模拟“拥有”关系。汽车通常没有人:)好吧,也许无人驾驶的变种会有人驾驶。@LutzHorn,他们当然没有;)我只是不太了解模型和要求。