我有一个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;
}
}
当我尝试
时出现问题 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);
}
虽然这在技术上有效,但我修改了现有代码以使用它。如果有办法让它以某种方式自动解决它仍然会很好。不确定这是否可行。
答案 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."