为任何 api 方法中未使用的类型添加类型定义
Add type definition for type not used in any api method
我有一个采用自定义 header 的 api 端点。
这个 header 是一个 object,看起来像这样:
User: {"UserId":"someguid"}
如果我在 api 方法中将类型作为参数,我可以执行以下操作:
public class AddFileParamTypes : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
if (operation.operationId == "FileDelivery_Post")
{
operation.consumes.Add("multipart/form-data");
operation.parameters.Add(new Parameter
{
name = "file",
required = true,
type = "file",
@in = "formData"
});
operation.parameters.Add(new Parameter
{
name = "User",
required = true,
schema = new Schema() { @ref = "#/definitions/User" },
@in = "header"
});
}
}
}
但是 User 类型不会成为方法的参数,那么如何将定义添加到 swashbuckle?
发现,很简单,但缺少文档:
public class AddFileParamTypes : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
if (operation.operationId == "FileDelivery_Post")
{
operation.consumes.Add("multipart/form-data");
operation.parameters.Add(new Parameter
{
name = "file",
required = true,
type = "file",
@in = "formData"
});
operation.parameters.Add(new Parameter
{
name = "User",
required = true,
schema = schemaRegistry.GetOrRegister(typeof(User)),
@in = "header"
});
}
}
}
我有一个采用自定义 header 的 api 端点。 这个 header 是一个 object,看起来像这样:
User: {"UserId":"someguid"}
如果我在 api 方法中将类型作为参数,我可以执行以下操作:
public class AddFileParamTypes : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
if (operation.operationId == "FileDelivery_Post")
{
operation.consumes.Add("multipart/form-data");
operation.parameters.Add(new Parameter
{
name = "file",
required = true,
type = "file",
@in = "formData"
});
operation.parameters.Add(new Parameter
{
name = "User",
required = true,
schema = new Schema() { @ref = "#/definitions/User" },
@in = "header"
});
}
}
}
但是 User 类型不会成为方法的参数,那么如何将定义添加到 swashbuckle?
发现,很简单,但缺少文档:
public class AddFileParamTypes : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
if (operation.operationId == "FileDelivery_Post")
{
operation.consumes.Add("multipart/form-data");
operation.parameters.Add(new Parameter
{
name = "file",
required = true,
type = "file",
@in = "formData"
});
operation.parameters.Add(new Parameter
{
name = "User",
required = true,
schema = schemaRegistry.GetOrRegister(typeof(User)),
@in = "header"
});
}
}
}