Swashbuckle OperationFilter添加类型对象的参数

时间:2019-09-04 18:23:53

标签: c# asp.net openapi swashbuckle

我有一个C#对象

public class MyObject
{
 public int property1 { get; set; }
 public string property2 { get; set; }
 public string property3 { get; set; }
}

我想创建一个具有MyObject模式的object类型的参数。

public class MyFilter : IOperationFilter
{
 public void Apply(OpenApiOperation operation, OperationFilterContext context)
 {
   operation.Parameters.Add(new OpenApiParameter
   {
    Name = "MyParameter",
    Description = "MyDescription"
    In = ParameterLocation.Header
    Required = true,
    Schema = new OpenApiSchema()
    {
     Type = "object",
     Properties = new Dictionary<string, OpenApiSchema>()
     {
       // MyObject
     }
    }
   }
  }
}

Swashbuckle是否提供任何可以自动使用MyObject模式生成属性的方法。

1 个答案:

答案 0 :(得分:0)

我找到了答案。

public class MyFilter : IOperationFilter
{
 public void Apply(OpenApiOperation operation, OperationFilterContext context)
 {
   var myObjectSchema = context.SchemaGenerator.GenerateSchema(typeof(MyObject), context.SchemaRepository);
   operation.Parameters.Add(new OpenApiParameter
   {
    Name = "MyParameter",
    Description = "MyDescription"
    In = ParameterLocation.Header
    Required = true,
    Schema = myObjectSchema
   }
  }
}