如何在 NestJS 中迁移一些路由 DTO 对象?

How to migrate some route DTO object in NestJ?

我使用 NestJS,我的应用对 DTO 对象进行了一些更改,这些更改预计会在控制器中接收。客户端是一个移动应用程序,我不能强迫用户更新版本,所以我可能会得到 DTO 对象,这些对象可能不在我的服务器端期望收到的更新版本中。

我想要做的是获取我得到的对象,如果我看到该对象是从客户端的旧版本接收的,那么我希望将该对象迁移到更新的对象类型。

执行此操作的最佳方法是什么?

提前致谢!

一个简单的解决方案可以是添加一个字段,指示接收到的对象是 DTO 的更新版本,检查该字段是否存在,然后应用后续逻辑。

另一种方法是使用 API 版本控制,您可以在 NestJS official documentation 中找到如何使用它。我认为这是一种更好的方法,因为如果将来你想再次更新 DTO,你只需创建另一个控制器版本。