私はで開発してSOAP APIいPHPます。これ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。古いクライアントはnull値をチェックする必要があります。
ノート:
- 複数のバージョンがあります
APIinterface - データベースは時間とともに変化します
- 各バージョンには、独自の
URL、独自のWSDL、および独自のがありますproxy class
複数のバージョンの構造で動作するクエリシステムを作成するにはどうすればよいですか?
これに対する既知のアプローチはありますか?