新网站如何做排名,一个软件开发需要多少钱,wordpress网站编辑,小程序买量平台接口设计的兼容性规则#xff08;信息性#xff09;
对于所有序列化格式而言#xff0c;向较新的服务接口的迁移有一定的限制。使用一组兼容性规则#xff0c;SOME / IP允许服务接口的演进。可以以非破坏性的方式进行以下添加和增强#xff1a;
• 向服务中添加新方法
…接口设计的兼容性规则信息性
对于所有序列化格式而言向较新的服务接口的迁移有一定的限制。使用一组兼容性规则SOME / IP允许服务接口的演进。可以以非破坏性的方式进行以下添加和增强
• 向服务中添加新方法
• 必须先在服务器端实现。
• 将参数添加到方法的输入或输出参数的末尾
• 当接收者首先添加它们时必须定义默认值
• 当发送者首先添加它们时接收者将忽略它们
• 将异常添加到方法可以引发的异常列表中
• 应先更新客户端
• 如果异常未知则需要抛出“未知异常”。但是异常描述字符串可以复制过来。
• 向联合中添加新类型
• 应先更新接收者
• 如果未知则可以跳过发送方先更新
• 为新方法定义新数据类型
• 为新方法定义新异常
并非所有这些更改都可以首先在客户端或服务器端引入。在某些情况下只能首先更改客户端或服务器。例如使用较新的实现发送附加参数时旧实现只能跳过此参数。
例如当消息的接收者添加要接收的新参数时必须定义默认值。这在发送具有旧版本服务的发送方发送不带附加参数的消息时需要。
接口规范中的某些更改可以以非破坏性的方式实现
• 删除函数中的参数
• 需要先在接收者端添加默认值并且参数需要位于列表末尾
• 从函数中删除异常
• 服务器端很简单
• 如果遇到旧异常客户端需要抛出“未知异常”
• 可以重命名参数、函数和服务因为名称不会被传输。生成的代码只查看ID和参数排序迁移中不应更改它们。
如果接口规范配置结构体具有长度字段则可以执行以下操作
• 向结构体末尾添加/删除字段
目前不支持以下更改
• 重新排序参数
• 将超类型替换为子类型如面向对象编程语言中