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,他们当然没有;)我只是不太了解模型和要求。