JSON请求创建具有现有内部对象的实体

时间:2014-11-19 15:19:22

标签: json api rest

我开发rest api并考虑以下任务。我需要发布一个车辆实体并将现有的驱动程序绑定到它。为这种请求格式化json的常用方法是什么? 我选择其中一种变体,但也许有更好的解决方案:

1. {"model":"Corolla","number":"12345", "driver": {"id": 5}}

2. {"model":"Corolla","number":"12345", "driver": {"id": 5, "name": "John"}}

3. {"model":"Corolla","number":"12345", "driverId": 5} 

问题是如何传递有关已知id的已创建驱动程序实体的信息。

2 个答案:

答案 0 :(得分:2)

您必须使用超媒体类型,例如使用HAL + JSON你可以这样做:

{
    "model":"Corolla",
    "number":"12345",
    "_embedded": {
        "driver": {
            "name": "John",
            "_links": {
                "self": {
                    "href": "/drivers/5"
                }
            }
        }
    },
    "_links": {
        "self": {
            "href": "/models/corolla"
        }
    }
}

答案 1 :(得分:1)

根据jsonapi,这可能是一个很好的格式:

{
    "model":"Corolla",
    "number":"12345"
    "links":
    {
        "driver": "5"
    }
}

本网站定义的约定可能对您有用。