Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用冗余数据设计RESTAPI:客户端或服务器端数据处理_Rest_Api - Fatal编程技术网

使用冗余数据设计RESTAPI:客户端或服务器端数据处理

使用冗余数据设计RESTAPI:客户端或服务器端数据处理,rest,api,Rest,Api,我正在开发一个基于JSON的REST API,允许获取有关文档的信息,其中“文档”资源具有以下形式: { "id": 1, "name": "document 1", ... "fields": [ {"name": "field1", "category": "category1", ...}, {"name": "field2", "category": "category2", ...}, ...

我正在开发一个基于JSON的REST API,允许获取有关文档的信息,其中“文档”资源具有以下形式:

{
    "id": 1,
    "name": "document 1",
    ...
    "fields":
    [
        {"name": "field1", "category": "category1", ...},
        {"name": "field2", "category": "category2", ...},
        ...
    ]
}
GET/documents/:id
路径非常简单,我希望
GET/documents
路径提供一系列与文档相关的基本信息,而不仅仅是链接或id,比如:

[
    {"id": 1, "name": "document 1"},
    ...
]
现在,UI需要显示文档列表以及文档字段所属的类别列表:

  • 文件1(类别1,类别2)
  • 文件2(类别2、类别3、类别4)
第一种解决方案是在
GET/documents
的响应中将
字段
添加到每个文档中,并让客户端计算类别列表(当有大量文档要显示时,这可能会导致用户体验不佳),例如:

第二种方法是在服务器端添加一段(冗余)信息,以避免在响应中添加太多数据,并避免客户端在每个文档的字段中循环(但现在API更依赖于UI如何显示数据),例如:

根据您的经验,我应该使用哪种解决方案

[
    {"id": 1, "name": "document1", "fields":
    [
        {"name": "field1", "category": "category1", ...},
        ...
    ]
]
[
    {"id", "name": "document 1", "categories": ["category1", "category2"]},
    ...
]