Подтвердить что ты не робот

Документация по API веб-API С# IHttpActionResult

У меня есть веб-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);
    }

Он не признает, что он должен использовать другой тип возвращаемого значения. "Описание ресурса" заканчивается тем, что 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);
}

Хотя это технически работает, и я изменил свой существующий код, чтобы использовать его. Было бы неплохо, если бы у него была возможность автоматически это понять. Не уверен, возможно ли это или нет.

4b9b3361

Ответ 1

Это работает для того, что я делаю. Его немного утомительно, чтобы включать каждый раз, но он позволяет мне при необходимости возвращать коды ошибок и сохранять функциональные возможности справочной документации.

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

Описание ресурса на странице справки веб-API показывает "Нет" и"