正确的Web API返回类型

时间:2018-12-31 12:19:26

标签: c# swagger-ui asp.net-core-2.2

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

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

在这种情况下,我应该遵循哪种做法从API返回数据?

2 个答案:

答案 0 :(得分:3)

您确实想返回IActionResult(object),但还没有完成。

ProducesAttribute注释控制器,并用ProducesResponseTypeAttribute注释方法:

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

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

答案 1 :(得分:0)

您可以返回 -特定类型 -IActionResult -ActionResult

有关更多详细信息,请参阅MSDN文章:https://docs.microsoft.com/en-us/aspnet/core/web-api/action-return-types?view=aspnetcore-2.2