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() { }
}