- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个网络服务,它将一个 ID 作为输入,返回与该 ID 关联的对象。
现在我要求此 Web 服务接受多个 ID 并返回与这些 ID 关联的多个对象。
我在这里担心的是,在合并新更改的同时,我想保持向后兼容性。关于输入,我已经通过在同一字段中接受“,”分隔字符串来解决问题。因此无需担心与输入的向后兼容性。
但对于输出,它将是对象列表而不是单个对象。
所以我的问题是返回对象列表而不是单个对象会破坏向后兼容性。我知道客户端将不得不更改接受服务结果的那段代码以接受列表。
什么是行业标准。这种改变是否被认为是破坏向后兼容性。
最佳答案
首先:是的,这是对 API 的更改,它不向后兼容(例如,客户需要更改某些内容,因为您的响应结构已从单个元素更改为元素列表)。
我工作过的大公司(如 1k IT 主管及以上)过去常常对他们的 WSDL/XSD 进行版本控制。对 WSDL/XSD 的任何结构更改都将作为服务本身的新版本受到威胁,因此结构更改需要正式发布服务以填充其新的 WSDL/XSD 和相应的变更日志。
两家公司随后在不同端点下部署了组件的新版本和旧版本(例如 wsdl/xsd),旧版本的生命周期结束大约 6-12 个月,以保证向后兼容性.
这样一来,当前的客户无需进行任何更改,我们的 B2B 合作伙伴就可以开始实现新的 API。
因此,在您的情况下,您可以通过以类似方式拥有两个版本来提供向后兼容性。我想这可以被视为一个活生生的行业标准。
无论您确实需要那个“大”解决方案(复杂性会带来许多新麻烦),并且您希望在生产环境中只拥有 1 个服务及其 1 个端点,这可能会更好地提供两种变体作为不同的操作。这样,您的 API 发生了变化,但所有旧操作仍然可用。
假设(我只是无法测试它):客户不需要重新生成 stub ,因为他曾经使用过的东西没有改变。
所以基本上我看到了一般获得向后兼容性的两种可能性:
多次部署/运行服务(例如,多个端点,如/myServiceV1、/myServiceV2)。每个 API 更改一个新版本/发布
已部署/运行服务一次,但所有旧请求均未更改,成为该服务的一部分。
希望对您的决定有所帮助 ;)
关于java - Web服务向后兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20471999/
我想在 iOS 设备上以慢动作显示视频。 我的 View 包含一个视频(约 2 秒长)和一个 slider 。 用户可以移动 slider 并逐帧(向前和向后)浏览电影。 MPMoviePlayerC
假设两个模型的标准外键,例如: Company(models.Model): name = models.CharField('Nome', max_length = 255) ...
即使从其他项目复制和粘贴代码,我的 NSURL 也会向后格式化,这毫无意义。 例如: let baseURL = NSURL(string: "http://example.com/v1/") NSU
我目前有: $i = 1; while { echo $i; $i++; } 它显示: 1234 etc.. 如何让它向后显示? 例如 4321 etc.. 我基本上想做完全相同的事情,但将其
我正在使用 JQuery 选择页面上的一些元素,然后在 DOM 中移动它们。我遇到的问题是我需要以 JQuery 自然想要选择它们的相反顺序选择所有元素。例如: Item 1 Item
有 Home.vue 和 Statistics.vue 页面。 Home.vue 渲染 TableFields.vue 组件。在 Home.vue 中,有一些字段编号,在页面加载时设置了初始值“3”。
我正在寻找类似 https 的东西,但是是反向的。用户(提前)生成自己的私钥,然后(仅在稍后)向 Web 应用程序提供关联的公钥。这部分交换应该(如果需要)在带外进行。然后使用这些 key 对通信进行
我不知道如何解释我的问题。这是我尝试解释的:函数 FindNext(SearchRec) 将从目录中获取下一个文件。在我的应用程序中,我有时会从当前的 SearchRec 索引向后查找一些文件。那么我
我有一个带前导 NA 的日期向量,我想使用包 zoo 中的 na.approx 为这些 NA 生成一个近似序列。 na.approx 不适用于前导 NA: x <- as.Date(c(rep(NA,
在任何网络浏览器、Windows 文件管理器和许多其他应用程序中,都支持向前和向后导航。默认情况下,这始终(或至少在大多数情况下)适用于额外的鼠标按钮,如果您的鼠标有的话。 我想在基于 WinAPI
我正在尝试使用双向链表编写撤消和重做函数,该双向链表在调用 doAction() 时在 list_1 前面添加操作(节点),在调用 undo() 时将操作存储在 list_2 中,并在调用 redo(
我有一个示例数据框,如下所示 ID count 1 10 2 20 3 40 所以对于累计计数,我要实现 ID count
我的应用程序需要显示一个值的图形表示,范围从 -1 到 1。负值应使用一种颜色,正值应使用另一种颜色。零位于中心,什么也没有显示。 (如果有帮助的话,这里的特殊用途是在金融应用程序中显示买卖订单的相对
我对这个简单的线条动画有点吃力。我想出了如何暂停它,但我需要的是能够从我调用函数 resetAnimation() 的那一刻起将动画反转回起点。 let pathAnimation = CABasic
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: How to read a file from bottom to top in Ruby? 在开发我的 R
import numpy as np data = np.array([0, 0, 0, 0, 0, 0, 0, 1], dtype=np.uint8) data.view(np.uint64) 我期
我有一个这样的值列表, lst = [1, 2, 3, 4, 5, 6, 7, 8] 期望输出 : window size = 3 1 # first element in the list
我的代码再简单不过了... if (iWant > thereAre){ msg = "There's only "+thereAre+" left, but you want "+iWant
#include #include /* converts to binary */ int main() { unsigned int decimalNUM = 0; print
CTRL-x o - switch cursor to other window 我想有能力扭转 control-x o做。像 control-x p这正是 control-x o有,但倒退。这个请求
我是一名优秀的程序员,十分优秀!