首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Net Core:为每个API操作创建响应类?

Net Core:为每个API操作创建响应类?
EN

Stack Overflow用户
提问于 2019-09-22 10:15:24
回答 2查看 2K关注 0票数 2

我们的软件架构师要求所有API操作都有自己的响应类,因为每个响应都可能略有不同。因此,我们基本上将Product封装在一个Base类中,并在需要时稍微定制。这是很好的建筑实践吗?我开始编程,看起来有点重复。另外,什么是更好的最佳替代方案呢?

产品类:

代码语言:javascript
复制
public class ProductDto
{
    public int ProductId { get; set;},
    public string ProductName { get; set;},
    public string ProductDescription { get; set;},
    public float SalesAmount { get; set;}
}

BaseResponse:

代码语言:javascript
复制
public class BaseResponse<T>
{
    [Required, ValidateObject]
    public T Body { get; set; }
    public bool HasError { get; set; }
    public string Error { get; set; }
}

个人回复:

代码语言:javascript
复制
public class CreateProductResponse : BaseResponse<ProductDto>
{
}

public class DeleteProductResponse : BaseResponse<int>
{
}

public class GetAllProductResponse : BaseResponse<IEnumerable<ProductDto>>
{
    public int Count { get; set;};
}

public class GetProductResponse : BaseResponse<ProductDto>
{
}

public class UpdateProductResponse : BaseResponse<ProductDto>
{
    public date DateUpdate { get; set;}
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-22 15:31:46

至少用目前的例子来说,我想说的是,这有点过分了。有许多派生类没有它自己的属性。也许在未来,同样的模式会继续下去。

更好的解决方案是将BaseResponse作为一个接口,以便更好地实现几个不同接口的相同属性的可扩展性。下面是更详细的信息。

https://softwareengineering.stackexchange.com/questions/382882/why-inherit-a-class-and-not-add-properties

票数 0
EN

Stack Overflow用户

发布于 2019-09-22 17:47:20

通过看到这段代码很难说出好/坏的架构实践。在我们的例子中,我们使用下面的模式并认为它是合理的。

代码语言:javascript
复制
public class BaseResponse
{
    public bool HasError { get; set; }
    public string Error { get; set; }
}   


public class CreateProductResponse : BaseResponse
{
 ---
}

public class CreateProductDetailResponse : CreateProductResponse
{
 ---
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58048194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档