Я создаю ASP. NET Web API 2 и использую Swashbuckle v.5.6 для создания документации по чванству. У меня есть функция POST для загрузки файла с некоторыми метаданными. Метаданные представляют собой JSON типа DocumentMetadataModel. Функция не имеет никаких параметров, поэтому я использую MultipartStreamProvider для получения данных multipart / form. Для класса метаданных DocumentMetadataModel я реализовал интерфейс IExamplesProvider. Я также реализовал IOperationFilter, но не могу понять, как правильно добавить параметр DocumentMetadataModel. Мне удалось поместить пример в описание, но это не очень хорошее решение:
if (operation.operationId.Equals("Documents_Post", StringComparison.CurrentCultureIgnoreCase))
{
if (operation.parameters == null)
operation.parameters = new List<Parameter>(1);
else
operation.parameters.Clear();
operation.parameters.Add(new Parameter
{
name = "File",
@in = "formData",
description = "File",
required = true,
type = "file"
});
//hack:
var provider = (Swashbuckle.Examples.IExamplesProvider)Activator.CreateInstance(typeof(DocumentMetadataModel));
var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(provider.GetExamples());
var result = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString);
operation.parameters.Add(new Parameter
{
name = "Metadata",
@in = "formData",
description = $"Example:{result}",
required = true,
type = "string"
});
}
Может ли кто-нибудь помочь мне правильно добавить DocumentMetadataModel?