首页 > 解决方案 > 如何在将端点输出写入响应流之前对其进行转换?

问题描述

ASP.NET Core 中有多种类型的操作结果。

我们希望任何响应都具有相同的有效负载结构。

{
    "isSuccess": true|false,
    "data?": {...}|string,
    "error?": {...}|string
}

我们可以这样定义它:

public sealed record SimpleResponse<TData>(bool isSuccess, TData? data, object? error);

然后将端点定义为:

public async Task<ActionResult<SimpleResponse<Customer>>> Get(int id) {...}

但这是,IMO,太冗长了,它不会影响模型验证失败时BadRequest所做的响应的有效负载结构。ApiController

我想使用 old good ActionResult<TResult>,所以它在引擎盖下转换为我需要的结构,我们还需要正确地公开有关生产类型的信息以招摇。

如果有的话,这个扩展点是什么?

标签: asp.net-core

解决方案


推荐阅读