基于this question,尤其是this answer,创建v2,v3等最可持续的方式是什么 - 大多数情况下,每个版本都会引入对先前版本的增量更改。大多数端点保持不变,大多数字段保持不变。
选项1:复制v1文件夹,重做内部引用以确保代码已更新,然后对其进行更改。这使每个版本都自包含。如果出现错误,您可以在所有版本中修复它。版本很干净,依赖性更容易管理。但是,例如,在v30之后,最终会出现大量重复代码。
选项2:创建v2文件夹,并使v2类成为子类v1类,提供基本功能,然后添加更改。这促进了代码重用,但可以非常快速地进行,例如。当您拥有超过30个版本时,跟踪更改/修复错误。
任何流行的最佳做法,优点/缺点?
答案 0 :(得分:1)
您的选项2将在几个版本中变为选项1。
在我看来有两种情况:
1个案例:您有传统的CRUD API,然后我建议查看this post,它显示了通过序列化程序在版本之间创建转换的方法。
2 case :您的API更多地是关于算法,逻辑和数据处理 - 然后您可以使用选项1 - 在DRF中创建另一个应用程序(复制文件夹),将所有公共库移出应用程序并保留只能更改的类,并需要在应用程序中提供向后兼容性支持。