RESTFUL API上的JSON数据结构

时间:2016-10-06 17:01:51

标签: json rest api coding-style restful-architecture

我在开发,代码质量或简单标准方面考虑,这是在考虑例如在@GET或@PUT方法上管理相同对象时在JSON中构造信息的最佳方式。

请查看示例:

想象一个API,它有一个@GET方法,它返回一组数据,这组数据包含一个类别:

{....
"category":{
            "id": 1,
            "name":"categoryName"
           },
...}

如您所见,cathegory被定义为具有ID和名称的对象。这些信息显然是以UI为目的发送到前端的。尽管如此,如果前端修改此对象并执行@PUT以更新后端中的数据,则会通过以下方式指定导管:

 {....
    "category":1,
 ...}

正如你在那里看到的那样,导管的结构已经改变了。

这是正确/正确/最好的处理方法,保持相同的结构(就像在第一个snipet上一样)或考虑使用另一个(如第二个snipet),例如,在打字时前端编程语言导致创建新的对象/属性。

提前致谢!

1 个答案:

答案 0 :(得分:1)

无论您使用何种方法,您的Category对象应该/将始终保持相同的结构。

以下是一个伪方法,它将返回所有Categories

的列表
GET /categories

Response:

[
    {
        "id": 1,
        "name": "Something",
        "special": true
    },
    {
        "id": 2,
        "name": "Another",
        "special": false
    }
]

现在,如果您要更新特定的Category

PUT /categories/{id}

Body

{
    "id": 1, //Technically, this is an optional field
    "name": "Something has changed",
    "special": false
}

正如您所看到的,结构是相同的 - 这是您应该努力的目标。