在公开不同的 API 版本时,您如何处理存储和检索可能具有不同结构的数据?
假设我们有两个 API 版本;V1 和 V2。V1 和 V2 都有一个位于“ https://api.com/message ”的 POST 端点,它将根据传递的数据在数据库中创建一条消息,例如:
{
DOB: '2014-12-01'
}
在 V1 中,所需的数据与 V2 不同,因为在 V2 中,我们决定将 DOB 从格式为“YYYY-MM-DD”的字符串更改为整数时间戳,例如 1284723728323
在这种情况下,当我们从使用 V2 API 的调用中保存数据时,DOB 字段将是一个整数,但从对 V1 的调用中保存时,它将是一个格式非常不同的字符串。
随着 API 的每次迭代,我们可能会修改底层数据的许多方面。调用较旧的 API 版本将导致存储的数据对于其他版本的 API 不正确。
是否有一种优雅的方式来处理需要不同格式/结构的数据的不同 API 版本?