REST API 在值不存在时采用默认值是一种好的做法吗?

问题描述 投票:0回答:2

应用程序允许其他应用程序获取某个地区的天气信息。该应用程序实现了

REST API
JSON
对象来表示资源,用户通过请求中 JSON 对象中的
region
属性来指示区域。

它的工作方式如下: 如果请求中未指示该区域,则表示该属性不存在于

JSON
中或者具有
null
,应用程序假定区域为“田纳西州”(某些默认区域)。这是一个好的做法吗?这样做对于使
region
成为必需属性并明确指示区域有什么缺点?

rest weather
2个回答
0
投票

我遇到了在请求中不明确区域值的不便: 如果用户(这里的用户是应用程序)侧的错误导致用户根本不发送该区域,则该用户可能正在查询天气,认为其与其他区域有关。因此,明确该值可确保当用户假设正在咨询另一个地区的天气时,此类错误不会被掩盖。


0
投票

这是一个好的做法吗?

没关系。

引入新消息时创建“必填”字段非常简单。

将“必填”字段引入到已发布的模式中是一团糟,因为你已经有很多生产者/消费者在野外耗尽,所有这些都需要更改。

在现有模式必然意味着该新字段具有相同值的情况下,引入具有默认值的可选字段允许您扩展消息的含义以覆盖新区域,同时破坏现有实现。

想象一条描述地址的消息。如今,所有感兴趣的地址都位于“地球”上;通过添加“行星”字段来明确这一点是浪费每个人的时间。但几年后,我们什么时候开始收集其他星球的地址?我们需要那个字段。使其成为默认值“Earth”的可选值,使我们能够在不破坏任何现有实现的情况下包含新的业务案例。

David Orchard 撰写了有关 XML 文档的这些问题的文章; 可扩展性、XML 词汇表和 XML 模式可能是一个很好的介绍。

© www.soinside.com 2019 - 2024. All rights reserved.