C#Web API帮助文档IHttpActionResult

时间:2015-04-13 16:07:06

标签: c# rest asp.net-web-api2

我有一个C#Web API,我正在尝试使用自动创建的帮助文档来使用IHttpActionResult。我删除了下面的例子,因此它更容易阅读。

对于该对象,下面是一个简单的例子。 BusinessObject只是一个包装器。 CollectionBase是CollectionBase : ObservableCollection<T>, ILoadable where T : BusinessObject。它是一个较旧的代码库,可以自动生成,但可以重复使用它。

    public class Value : BusinessObject
    {
        public int Id { get; set; }
    }
    public class Values : CollectionBase<Value>
    {
        public override Value LoadObject(System.Data.IDataRecord record)
        {
            return new Value();
        }
    }

对于API方面的事情。以下作品。

public class Values : ApiController
{
    public IEnumerable<Value> GetThis()
    {
        Values values = new Values();
        return values;
    }
}

enter image description here

当我尝试

时出现问题
    public IHttpActionResult GetThis()
    {
        Values values = new Values();
        return Ok(values);
    }

它没有意识到它应该使用不同的返回类型。资源描述&#39;最终成为没有样本输出的IHttpActionResult。现在我可以添加

config.SetActualResponseType(typeof(IEnumerable<Value>), "Values", "GetThis");

它将显示一个示例输出,但“资源描述”&#39;仍然是IHttpActionResult。这是我遇到的主要问题。我想使用IHttpActionResult,因为它非常容易使用,并且如果需要非常容易返回错误代码。我只想能够自动构建文档。

更新:经过一些进一步的研究,我对这篇文章做得很好。 Resource Description on Web API Help page is showing "None."

基本上,您将响应类型属性添加到方法中。

[ResponseType(typeof(IEnumerable<Value>))]
public IHttpActionResult GetThis()
{
    Values values = new Values();
    return Ok(values);
}

虽然这在技术上有效,但我修改了现有代码以使用它。如果有办法让它以某种方式自动解决它仍然会很好。不确定这是否可行。

1 个答案:

答案 0 :(得分:30)

这适用于我正在做的事情。每次都必须包含它有点乏味,但它允许我在必要时返回错误代码并保留帮助文档功能。

[ResponseType(typeof(IEnumerable<Value>))]
public IHttpActionResult GetThis()
{
    Values values = new Values();
    return Ok(values);
}

Resource Description on Web API Help page is showing "None."

相关问题