Eri*_*k T 2 c# asp.net-web-api swagger asp.net-core
我有一个ASP.NET Core Web API网站,启用了Swagger生成和UI。为了使Swagger起作用(至少自动起作用),必须键入controller方法的返回值。例如,
public async Task<Employee> LoadEmployee(string id)
Run Code Online (Sandbox Code Playgroud)
但是,我需要从此操作返回自定义HTTP状态代码和内容。我看过的所有示例都使用StatusCode方法,或返回其他一些对象。这样做的问题是Swagger不知道操作的返回类型是什么,因此无法生成API规范。
有什么方法(异常,控制器上的方法等)返回自定义代码/内容,同时保留签名?我已经看到了使用自定义中间件的解决方案,但是似乎很常见的情况是应该构建一些中间件。
小智 5
您可以只使用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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5479 次 |
| 最近记录: |