gpt4 book ai didi

c# - 如何在不返回对象、IActionResult 等的情况下在 ASP.NET Core 中返回自定义 HTTP 状态/消息?

转载 作者:行者123 更新时间:2023-11-30 19:24:05 24 4
gpt4 key购买 nike

我有一个 ASP.NET Core Web API 站点,启用了 Swagger 生成和 UI。为了让 Swagger 工作(至少自动工作),必须输入 Controller 方法的返回值。例如,

public async Task<Employee> LoadEmployee(string id)

但是,我需要从此操作返回自定义 HTTP 状态代码和内容。我见过的所有示例都使用 StatusCode 方法,或者返回一些其他对象。这样做的问题是 Swagger 不知道操作的返回类型是什么,因此无法生成 API 规范。

是否有某种方式(异常、 Controller 上的方法等)返回自定义代码/内容,同时保留签名?我见过使用自定义中间件的解决方案,但它似乎是一个足够常见的场景,应该有一些东西可以构建它。

最佳答案

您可以只使用 StatusCodeResult StatusCode(...) 返回状态代码和消息/对象。

public async Task<ObjectResult> LoadEmployee(string id)
{
var employee = await repository.GetById(id);
if(employee == null) {
return NotFound();
}

return StatusCode((int)HttpStatusCode.Ok, employee);
}

关于c# - 如何在不返回对象、IActionResult 等的情况下在 ASP.NET Core 中返回自定义 HTTP 状态/消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40774686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com