我正在开发一个SOAP
API
in PHP
. 这API
应该能够处理多个接口版本。为此,我正在对数据结构进行版本控制,例如:
- 结构V1用户
- 结构V1组
……过了一段时间……
- StructV2User
- 结构V2组
新数据结构不会覆盖旧数据结构。多个API
接口版本应该同时工作。
在API
接口的第一个版本中,操作如下所示:
User userGet(int id)
它返回一个具有以下结构的对象:
User {
int id;
string username;
int created;
int updated;
}
假设一段时间后,从结构中删除了一些属性并添加了其他属性(在此示例中操作签名没有改变):
User {
int id;
string username;
int updated;
bool admin;
}
因此,如果数据库更改并且该字段created
不再存在,它应该是null
。老客户应该检查空值。
笔记:
- 会有多个版本
API
interface
- 数据库随时间变化
- 每个版本都有自己的
URL
、自己的WSDL
和自己的proxy class
如何创建一个适用于多个版本结构的查询系统?
有什么已知的方法吗?