![](/img/trans.png)
[英]How to selectively add OperationFilter to API endpoint in Swagger?
[英]Swashbuckle OperationFilter to Add Parameter of Type Object
我有一个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
架构自动生成属性的方法。
我找到了答案。
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
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.