我注意到,在Swagger v3和OAS3中,我们现在支持一些叫做"链接“的东西
但我真的不知道是否可以在Swashbuckle中使用这个特性,以及它是否是..那怎么做?一直在网上搜寻,却没有发现任何关于这件事的东西。
有人能用斯瓦什巴克尔的链接吗?
发布于 2022-10-11 08:42:57
您可以使用OperationFilter。创建实现IOperationFilter的类
public class MyLinkFilter : IOperationFilter
{选择要为其添加链接的响应。
public void Apply(OpenApiOperation operation, OperationFilterContext context)
var responses = operation.Responses;
var response = responses.FirstOrDefault(r => r.Key == "200").Value;然后更新Links属性
response.Links = new Dictionary<string, OpenApiLink>
{
{
"YourKey"
,new OpenApiLink {
OperationId = "YourOperationId",
Description = ".............",
Parameters = new Dictionary<string, RuntimeExpressionAnyWrapper>
{
{
"yourParam", new RuntimeExpressionAnyWrapper
{
Any = new OpenApiString("$request.path.number")
}
}
}
}
}
};将您的OperationFilter注册到startup.cs
services.AddSwaggerGen(options =>
{
options.OperationFilter<MyLinkFilter>();
});最后,您必须实现一种机制,将链接应用到控制器中的good Action。
https://stackoverflow.com/questions/62639328
复制相似问题