我正在编写一个 RESTful HATEOAS API。我有复合实体,我必须 GET、POST 和 PUT。GET 部分很简单,并且有很多示例。响应包含实体的原始属性和嵌套实体的链接。例如:
{
"id":"2",
"firstName":"Brad",
"lastName":"Pitt",
"balance":1234.5,
"transactions":"http://localhost:8080/jersey-poc/api/v1.1/account/1/transactions",
"self":"http://localhost:8080/api/v1.1/account/1",
"accountType":"http://localhost:8080/api/v1.1/account/1/accountType"
}
当我想创建或修改帐户时会出现问题。我需要将帐户与 accountType 相关联。我可以发送一个 POST 请求,如下所示:{"firstName":"Michael","lastName":"Jackson","balance":300.0,"accountTypeId":5}
但这会破坏 HATEOAS 范式。POST/PUT 复合实体的最佳实践是什么?