我目前有一个MVC网站,我即将创建一个API,向移动客户端公开有限的功能。我的网站有一个逻辑层,我在其中使用DTO来显示网站上的信息。
在创建API时,我应该将这些相同的DTO公开给客户端,还是应该创建特定于API中使用的DTO?我将创建新的控制器和操作方法,因此也可以创建特定于API的DTO。
我觉得创建API会迫使您与移动客户端签订合同,以便更改更改。拥有单独的DTO,您可以自由地对仅在网站上使用的DTO进行更改。
然而,缺点是我基本上复制了我的代码,因为DTO基本上是相同的。
思想?
答案 0 :(得分:1)
IMO,对此的决定主要取决于我需要传递给视图的所有数据,如果在两种情况下都相同,我会使用相同的DTO。如果不是这种情况,那么我将为DTO创建一个基类,它具有跨特定视图的API的通用内容,并从该基本DTO继承并在特定于API需求的派生类中添加更多属性。 / p>