我有一个C# Web API,我正在尝试让自动生成的帮助文档与IHttpActionResult一起使用。我简化了下面的示例,使其更易于阅读。
对于对象而言,以下是一个简单的示例。BusinessObject只是一个包装器。CollectionBase是
对于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);
}
它没有意识到应该使用不同的返回类型。'资源描述'最终成为没有示例输出的IHttpActionResult。现在我可以添加
config.SetActualResponseType(typeof(IEnumerable<Value>), "Values", "GetThis");
它将显示一个示例输出,但“资源描述”仍将是IHttpActionResult。这是我遇到的主要问题。我想使用IHttpActionResult,因为它非常容易使用,并且可以轻松返回错误代码。我只想能够自动构建文档。
更新:在进一步研究后,我找到了这篇文章。 Web API帮助页面上的资源描述显示为“无”。
基本上,您需要向方法添加响应类型属性。
[ResponseType(typeof(IEnumerable<Value>))]
public IHttpActionResult GetThis()
{
Values values = new Values();
return Ok(values);
}
虽然这个技术上是可行的,我也已经修改了现有的代码来使用它。但如果有一种自动地解决它的方法会更好。不确定是否可能。