使用web api文档时如何返回NotFound结果

时间:2016-11-13 17:17:29

标签: c# web asp.net-web-api

如何指示无法找到资源,仍然可以获取Web API 2 Web应用程序的自动生成文档?

以此方法定义为例:

<property name="packagesToScan" value="DAO" />

如果我使用此定义,则无法返回 public JsonResult<CalculatorDescription> GetParameterInfo(string parameterCaption) ,但如果我将返回类型更改为NotFound()(为了能够返回IHttpActionResult),我不会获得自动 - 返回类型的生成信息。

编辑: 请注意,我正在使用https://msdn.microsoft.com/en-us/library/dn337124(v=vs.118).aspx JsonResult和 MVC(https://msdn.microsoft.com/en-us/library/system.web.mvc.jsonresult(v=vs.118).aspx

1 个答案:

答案 0 :(得分:4)

将您的退货类型更改为IHttpActionResult,并使用ResponseType attribute修饰您的操作方法:

  

当声明的返回类型为HttpResponseMessage或IHttpActionResult时,使用此选项指定操作返回的实体类型。生成ApiDescription时,ApiExplorer将读取ResponseType。

然后,在您的方法中,返回NotFound()JsonResult<T>

[ResponseType(typeof(CalculatorDescription))]
public IHttpActionResult GetParameterInfo(string parameterCaption)
{
    ...
    if (...) 
        return new JsonResult<CalculatorDescription>(...);
    else 
        return NotFound();        
}