来自 Web API 的正确返回类型

Car*_*row 3 c# swagger-ui asp.net-core-2.2

我正在为我的下一个项目创建 ac# .net core 2.2 web API。我的问题是什么时候返回数据我应该返回对象还是IActionResult OK(returnObject)

我问的原因是我使用 swagger 和 swagger studio 为 Angular 前端创建模型。如果我IActionResult从 API返回一个,则返回的视图模型在swagger.json文件中没有详细说明,因此我必须在 angular 应用程序中对这些进行编码。如果我返回创建的任何对象,则模型将在swagger.json.

在这种情况下,我应该遵循什么实践来从 API 返回数据?

Kit*_*Kit 5

你确实想回来,IActionResult(object)但你还没有完全完成。

使用 注释您的控制器ProducesAttribute并使用 注释您的方法ProducesResponseTypeAttribute

[Produces("application/json")]
public class SomethingController
{
    [ProducesResponseType(typeof(YourObject), (int)HttpStatusCode.OK)]
    public IActionResult GetThing(int id)
    { ... }
}
Run Code Online (Sandbox Code Playgroud)

这允许 Swagger UI 知道期望什么并适当地记录它。上面显示的是同步方法;它也适用于异步。