我正在开发一个基于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"},
...
]
现在,用户界面需要显示文档列表,其中包含文档字段所属的类别列表:
第一个解决方案是在fields
的响应中将GET /documents
字段添加到每个文档中,并让客户端计算类别列表(这可能会导致用户体验较差的用户体验要显示的很多文件),例如:
[
{"id": 1, "name": "document1", "fields":
[
{"name": "field1", "category": "category1", ...},
...
]
]
第二个是添加那个(冗余)信息服务器端,以避免在响应中添加太多数据,并避免客户端遍历每个文档的字段(但现在API更依赖于如何UI呈现数据),例如:
[
{"id", "name": "document 1", "categories": ["category1", "category2"]},
...
]
根据您的经验,我应该使用哪种解决方案?