我找不到一个明确的文件,提到UI呈现提示是否可以作为REST元数据发回。首先,什么都可归类为REST元数据?当然,属性的数据类型可以是元数据,但是可以呈现提示,例如属性是单值还是多值也可以描述元数据?怎么样" ishidden"和#34; isReadOnly"?根据我的理解,像min / max / regexp / fixed value这样的信息可以作为元数据,但不确定是否有任何与我上面提到的表示提示相关的内容是REST元数据的良好候选者?任何指针都会有很大的帮助。
谢谢,
稻谷
答案 0 :(得分:1)
诚然,您可以自由地将有效负载中的内容发送回REST客户端。但是我不确定总是使用这些面向UI的元数据是个好主意。事实上,您还可以拥有使用数据而不会出现UI问题的应用程序。
您可以实现一种机制,允许您以与OData相似的方式选择要在内容协商中返回REST客户端的元数据级别(基于标头Accept
的连接)。以下是一个示例:
GET serviceRoot/People
Accept: application/json;odata.metadata=minimal
您可以想象标题Accept
的以下值:
然后您可以按如下所述构建内容:
{
"property1": "value",
// Structural
"property1@metadata": {
"type": "string"
},
"property2": 10,
// Structural + validation
"property2@metadata": {
"type": "integer"
"minValue": 2,
"maxValue": 15
},
"property3": 10,
// Structural + ui rendering
"property3@metadata": {
"type": "integer"
"minValue": 2,
"maxValue": 15,
"readOnly": true,
"hidden": false
}
}
如果您想了解如何在OData v4中处理元数据,可以使用odata.org中的以下链接:
编辑:在评论中,inf3rno下划线标题Prefer
也可用于描述所需的元级别。
以下是一个使用示例:
GET serviceRoot/People
Accept: application/json
Prefer: metadata=rendering
希望它可以帮到你, 亨利