繁体   English   中英

REST-Api 中传递结构化数据或键值对的最佳实践是什么?

[英]What is the best practice in REST-Api, to pass structured data or key-value pair?

我有一个类似于下面给出的数据结构,我应该处理它。 我正在设计一个 API,它应该接受类似于下面给出的 POST 请求。 (忽略标题等)
{ "Name": "Johny English", "Id": "534dsf", "Message":[ { "Header":"Country of origin", "Value":"England" }, { "Header":"Nature of work", "Value":"Secret Agent/Spy" } ] }

有些我不觉得,这是传递/接受数据的正确方法。 在这里,我谈论的是结构化数据与键值对。 虽然我可以将字段(“Name”、“Id”)直接提取到 object 属性,但对于键值对,我需要遍历集合并与字符串(例如“工作性质”)进行比较以提取价值观。
我搜索了几个站点,寻找任何最佳实践,无法得出任何结论。 是否有任何最佳实践、建议等。

我认为您不会找到任何坚定的、基于证据的 arguments 反对在您的消息模式中包含键值对列表。 但这正是需要寻找的东西——人们撰写有关消息模式设计的文章,以及如何设计消息以支持更改等等。

实际上,并没有太大的区别

{
    "Name" : "Johny English",
    "Id": "534dsf",
    "Message":[
        {
            "Header":"Country of origin",
            "Value":"England"
        },
        {
            "Header":"Nature of work",
            "Value":"Secret Agent/Spy"
        }
    ]
}

或者

{
    "Name" : "Johny English",
    "Id": "534dsf",
    "Message": {
        "Country of origin": "England",
        "Nature of work": "Secret Agent/Spy"
    }
}

在世界范围内的 web 的早期,“一切”都是键值对,因为很容易以通用组件(如 web 浏览器)可以使用它的方式描述键值对的集合(即,HTML 形式的定义)。 它完成了工作。

通常最好将响应数据的结构与您期望的相应 POST、PUT 和 PATCH 端点的输入相同。 这允许记录更改不需要消费实体首先转换数据。 因此,在这种情况下,具有“名称”/“值”字段的对象的 arrays 更容易编写输入验证。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM