URI版本

让我们考虑下下面提供房间资源访问的URI/rooms/{roomId},正如在数据转换设计模式章节描述的。我们将添加一个新的区域来包含房间图片的URL(pictureUrl)。这个改变是向前兼容的,并且对于消费这个服务的客户端来说不要求做特殊处理。

现在,我们意识到了多张图片可以提高用户的参与感。我们可以简单的和已经存在的图片URL一起添加一个新的区域。然而,使用URLs的链表(pictureUrls)来代替URL区域是更有意义的。这个改变不向后兼容。因此,为了保证已存在的客户端继续正常工作,我们需要创建一个新的版本。为了这样做,我们在资源URIs中包含版本。

对于这种方法,/rooms/{roomId}变成/v{versionNumber}/rooms/{roomId}。例如,房间ID#1在我们第一个API中是/v1.0/rooms/1,并且它将包括pictureUrl区域。客房的访问在我们新版本中将通过/v1.1/rooms/1,且返回图片URLs的列表。

技巧

对于基于URI的版本管理的一个最佳实践是给最后版的API设置一个没有版的别名URIs。因此,如果最终办的API是2.0,/rooms/1将成为/v2.0/rooms/1的别名。

results matching ""

    No results matching ""