Web Api 2: "Образец недоступен"

Я пытаюсь автоматически генерировать документы справки для моего веб-Api.

Однако я вижу на одном конкретном методе образец запроса не может быть сгенерирован, как показано на рисунке:

Image1

Ниже приведены параметры запроса аргументов:

Image2

Почему он не может создать образец запроса?

Ответ 1

Я обнаружил, что в действиях, возвращающих IHttpActionResult, отсутствовал образец. Чтобы получить образцы, сгенерированные для этих методов, мне пришлось украсить действие с помощью ResponseTypeAttribute, например:

[ResponseType(typeof(Model))]
public async Task<IHttpActionResult> Get(int key)
{
    var entity = await dbContext.Models.FindAsync(key);

    if (entity == null)
    {
        return NotFound();
    }

    return Ok(entity);
}

Ответ 2

Убедитесь, что у создаваемых объектов есть пустой конструктор. Объекты без пустого конструктора не могут быть автоматически созданы на странице справки веб-API. Если создание пустого конструктора не является вариантом, вы можете "вручную" создать их с помощью config.SetSampleObjects

Ответ 3

Для тех, кому интересно, какой из этих ответов между @chris и @wade-wright правильный.

Ответ - ОБА. Оба они требуются. Например, если вы делаете виртуальную машину для консолидации содержимого, возвращаемого вашим API, к необходимым данным, которые вы бы хотели сделать, например:

[ResponseType(typeof(YourVM))]

поверх действия вашего контроллера

и пустой конструктор в вашей виртуальной машине:

 public class YourVM
    {
        public YourVM() { }
    }