【发布时间】:2023-12-19 23:44:02
【问题描述】:
我正在PHP 中开发SOAP API。这个API 应该能够处理多个接口版本。为此,我正在对数据结构进行版本控制,例如:
- StructV1User
- StructV1Group
...过了一段时间...
- StructV2User
- StructV2Group
新数据结构不会覆盖旧数据结构。多个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。老客户应该检查空值。
注意事项:
-
APIinterface将有多个版本 - 数据库随时间变化
- 每个版本都有自己的
URL、自己的WSDL和自己的proxy class
如何创建适用于多个版本结构的查询系统?
是否有任何已知的方法?
【问题讨论】:
标签: php api versioning