通过其他资源的POST请求创建外键记录是否符合RESTful规范?
API外键关联资源的创建规则说明
咱们这个API里带外键关联的资源,有明确的创建顺序要求,核心规则给你理清楚:
- 外键记录必须提前单独创建:所有带外键关联的资源,得先通过对应外键资源的POST接口完成创建,才能去创建依赖它的子资源。
- 没法通过子资源接口顺带创建外键资源:哪怕像
Country这种是Wine的外键,你也不能通过调用/api/wine的POST请求来顺便创建Country,必须单独调用/api/country的接口先把Country建好。
举个实际场景的例子:
如果你向/api/wine发送如下POST请求体:
{ "id": 79, "name": "Bordeaux", "country": { "id": 76, "code": "FR", "name": "France" }, "year": "2005" }
只有当ID为76的France这个Country已经存在(也就是已经通过/api/country创建成功)时,这个创建Wine的请求才会成功;如果该Country还不存在,请求直接失败,不会自动帮你创建对应的Country记录。
内容的提问来源于stack exchange,提问作者Benihana
相关产品推荐
相关产品推荐

