我正在为我的下一个项目创建一个c#.net core 2.2 Web API。我的问题是返回数据时应返回对象还是IActionResult OK(returnObject)
?
我问的原因是我正在使用swagger和swagger studio创建用于Angular前端的模型。如果我从API返回了IActionResult
,则返回的视图模型在swagger.json
文件中没有详细说明,因此我必须在angular应用程序中对它们进行编码。如果我返回创建的任何对象,则会在swagger.json
中创建模型。
在这种情况下,我应该遵循哪种做法从API返回数据?
答案 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