首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Swashbuckle为OAS3定义链接?

如何使用Swashbuckle为OAS3定义链接?
EN

Stack Overflow用户
提问于 2020-06-29 13:34:16
回答 1查看 135关注 0票数 6

我注意到,在Swagger v3和OAS3中,我们现在支持一些叫做"链接“的东西

但我真的不知道是否可以在Swashbuckle中使用这个特性,以及它是否是..那怎么做?一直在网上搜寻,却没有发现任何关于这件事的东西。

有人能用斯瓦什巴克尔的链接吗?

EN

回答 1

Stack Overflow用户

发布于 2022-10-11 08:42:57

您可以使用OperationFilter。创建实现IOperationFilter的类

代码语言:javascript
复制
public class MyLinkFilter : IOperationFilter 
{

选择要为其添加链接的响应。

代码语言:javascript
复制
public void Apply(OpenApiOperation operation, OperationFilterContext context)
    var responses = operation.Responses;
    var response = responses.FirstOrDefault(r => r.Key == "200").Value;

然后更新Links属性

代码语言:javascript
复制
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

代码语言:javascript
复制
services.AddSwaggerGen(options =>
  {
     options.OperationFilter<MyLinkFilter>();
  });

OpenAPI,响应

OpenAPI,链接

最后,您必须实现一种机制,将链接应用到控制器中的good Action。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62639328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档