У меня есть веб-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, потому что он очень прост в использовании и может очень быстро возвращать коды ошибок. Я просто хотел бы иметь возможность автоматически создавать документацию.
ОБНОВЛЕНИЕ: после некоторых дальнейших исследований я отлично справился с этой записью. Описание ресурса на странице справки веб-API показывает "Нет" и"
Базиально, вы добавляете атрибут типа ответа к методу.
[ResponseType(typeof(IEnumerable<Value>))]
public IHttpActionResult GetThis()
{
Values values = new Values();
return Ok(values);
}
Хотя это технически работает, и я изменил свой существующий код, чтобы использовать его. Было бы неплохо, если бы у него была возможность автоматически это понять. Не уверен, возможно ли это или нет.