Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在springdocs中,我可以根据操作上的标记定义多个OpenAPI定义吗?

在springdocs中,我可以根据操作上的标记定义多个OpenAPI定义吗?
EN

Stack Overflow用户
提问于 2020-09-02 11:42:04
回答 1查看 472关注 0票数 1

我需要在一个应用程序中使用springdocs文档为同一个API定义两个不同的OpenApi定义:一个用于内部开发人员,一个用于外部开发人员。外部定义将包括内部定义中的一些操作,但不是所有操作。

我已经考虑过使用GroupedOpenApi来创建这两个定义,但这要求我将应该从外部定义中排除的端点移到一个单独的RestController中,并移到一个排除的包中,该包将不包括在外部开发人员的定义中,但仍将包含在内部定义中。我倾向于基于API定义来构造代码,而不是基于对端点的安全访问。

这似乎可以使用SecurityScheme或标记来定义在给定的定义中包含哪些操作,可以使用类似于GroupedOpenApi的内容以及要包含的路径/包。因此,例如,我可以使用如下内容定义外部API的定义:

代码语言:javascript
运行
AI代码解释
复制
GroupedOpenApi.builder()
            .group("externalGroupName")
            .securitySchemesToInclude("externalSchemeName") // this doesn't currently exist
            .build();

然后使用SecurityRequirement标记的任何操作都会被添加到这个外部定义中。因此,例如,我可以在同一个RestController中定义以下两个端点:

将包括

代码语言:javascript
运行
AI代码解释
复制
    @SecurityRequirement(name = "externalSchemeName")
    @GET
    @Path("/pets")
    public Response getResponse(){
        return null;
    }
}

不包括

代码语言:javascript
运行
AI代码解释
复制
    @SecurityRequirement(name = "internalSchemeName")
    @GET
    @Path("/pets/internal")
    public Response getInternalResponse(){
        return null;
    }
}

使用这种方法,最好提供与路径/包包含/排除类似的包含/排除安全方案。

这似乎目前需要对springdocs文档做出贡献,除非我误解了如何创建多个定义的选项。是否有另一种方法可以将操作排除在我定义的定义之外,而不对所有定义完全隐藏该操作,并且不对包进行重组?

请注意,如果可能的话,我也不希望维护在配置中应该从组中排除的所有路径的列表,因为这容易出错,并且不允许跨多个服务提供共享配置。我更喜欢一个注释驱动的方法,类似于其他swagger定制的方式,这样我就可以定义配置一次,然后在基于注释定义或修改每个资源时更新它,以驱动生成的swagger。

EN

回答 1

Stack Overflow用户

发布于 2020-09-02 14:58:27

使用您的示例,您有其他未使用的GroupedOpenApi过滤器(基于路径):

代码语言:javascript
运行
AI代码解释
复制
    GroupedOpenApi.builder()
            .group("internalGroupName")
            .pathsToMatch("/pets/internal")
            .build();

    GroupedOpenApi.builder()
            .group("externalGroupName")
            .pathsToMatch("/pets")
            .packagesToExclude("/pets/internal")
            .build();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63712552

复制
相关文章
extjs 部署时动态切换上下文路径
修改index.html ... <script type="text/javascript"> // 获取首页上下文路径 var basePath = window.kk; basePath = basePath.substr(0, basePath.lastIndexOf('index.html')); // 创建base标签 var base = document.createElement("base"); base.setAttribute("hre
路过君
2020/06/19
4540
fiddler使用——配置抓取https,出现提示“禁用解密”“单击配置”
自己在设置fiddler抓https的时候,浏览器总是提示:此证书不受信任;中午没午睡下午一直昏沉沉的,弄了好久,终于想起来是证书的问题;度娘有个不错的答案,这里分享一下!给以后有相同问题的朋友,也同时作为自己的一个记录。(PS:自己喜欢用火狐,所以自己是在火狐上设置的,其他大同小异,这位童鞋说的比较清楚)
呆呆
2021/05/25
2.3K0
vue 实现标签切换
文章持续更新,阅读最新版文章请查看 https://www.itshutong.com/articles/429/vue-realizes-label-switching
章鱼喵
2020/02/19
1.3K0
视频标签栏切换
代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>视频标签栏切换</title> <style> * { padding: 0; margin: 0; }
王凡汎
2020/05/07
6860
tab标签页切换时Echarts加载不正常的问题
我有两个选项卡,一个用来显示Echarts图表,一个用来显示Echarts图表的数据源
别团等shy哥发育
2023/02/25
2.2K0
tab标签页切换时Echarts加载不正常的问题
后台系统设计(上篇:选择)
在单个选项下,存在多组互斥选项,且互斥选项组之间存在一定关系,可以考虑混用分段控件和常规按钮,由于分段控件在视觉上占用更大的面积,故给人在层级上更加置前。
霖酱
2018/10/10
10.1K0
后台系统设计(上篇:选择)
win禁用shift切换输入法
在很多场景下,我们都会使用到shift来完成一些功能,最常见的就是输出键盘上面一排标点符号,但是往往在使用shift时会出现切换输入法的情况,在一些仅英文或者中文输入的场合切换会对工作效率造成影响,这里介绍禁用shift切换输入法的方法,仅仅采用ctrl+空格的方式完成切换输入法。
timerring
2022/09/21
6.1K0
win禁用shift切换输入法
使用 HTML meta 标签来禁用缓存
在测试某个 SPA 项目时,发现更改后 Chrome 浏览器页面刷新还是使用之前的版本。经调查发现 Chrome 默认缓存值为 300 秒。
李维亮
2021/07/08
4.4K0
含有复选框的表格显示与隐藏切换
如果使用v-if,注意使用this.nextTick,并且this.nextTick 放的位置在里面,不要显示表格的时候就使用this.
tianyawhl
2020/12/16
2.3K0
含有复选框的表格显示与隐藏切换
如何禁用 Gmail 的分类(Categories )标签
但是有时候因为这个分类的存在,导致我们经常找不到邮件,很多人可能还是习惯按照时间的顺序来处理邮件。
HoneyMoose
2021/09/11
1.3K0
如何禁用 Gmail 的分类(Categories )标签
jQuery 双击事件(dblclick)时,不触发单击事件(click)
在jQuery的事件绑定中,执行双击事件(dblclick)时能触发两次单击事件(click)。即一个标签元素(如div等),如果元素同时绑定了单击事件(click)和双击事件(dblclick),那么执行单击事件(click)时,不会触发双击事件(dblclick), 执行双击事件(dblclick)时却会触发两次单击事件(click)。 先看一下点击事件的执行顺序:
飞奔去旅行
2019/06/13
5.6K0
小程序标签页切换效果
小程序标签页切换效果 效果: image.png 效果 .wxml <view class='topTabSwiper'> <view class='tab {{currentData == 0
达达前端
2019/07/04
2.2K0
vim-tabe多标签切换
原文链接:https://www.cnblogs.com/liqiu/archive/2013/03/26/2981949.html
ccf19881030
2019/11/18
2.2K0
VBA专题10-8:使用VBA操控Excel界面之在功能区中添加内置控件
4. 在CustomUI Editor中,单击“插入”并选择“Office 2007 Custom UI Part”。之所以选择这个选项,是使工作簿与Excel 2007及以后的版本兼容。
fanjy
2020/11/09
6.9K0
VBA专题10-8:使用VBA操控Excel界面之在功能区中添加内置控件
认识基本的mfc控件
  几乎可以在每个windows程序中都看到按钮、复选框、文本框以及下拉列表等等,这些都是控件。而且很多常用的控件已经内置到操作系统当中了,在Visual C++中,这些常用控件已经简答到能用“拖放”这种窗口设计方法来将他们放置到一个对话框中。
用户2038589
2018/09/06
3.5K0
认识基本的mfc控件
动态加载 ExtJS 类库
ExtJS 是一个非常优秀的 JS 框架, 由于 ExtJS 自身非常庞大, 用于开发测试的 ext-all-debug.js 文件达到了 3.24M , 如果是再加载带注释的 ext-all-debug-w-comments.js 则更是达到了 6M , 可以说是非常庞大了, 因此动态加载 ExtJS 是很有必要的, 接下来就介绍如何对 ExtJS 做动态加载。
beginor
2020/08/10
2.3K0
动态加载 ExtJS 类库
当不使用会话状态时禁用它
并不是所有的应用程序或页都需要针对于具体用户的会话状态,您应该对任何不需要会话状态的应用程序或页禁用会话状态。
Java架构师必看
2021/03/22
5310
选择篇(039)-单击按钮时event.target是什么?
导致事件的最深嵌套元素是事件的目标。你可以通过event.stopPropagation停止冒泡
齐丶先丶森
2022/05/12
1.7K0
CSS+JS实现tab标签切换
循环将所有的内容标签隐藏,并将tab标题栏的active样式清除,完了之后设置选中标签的内容显示,并给tab标题栏添加active样式。
牛老师讲GIS
2018/10/23
11.8K0
CSS+JS实现tab标签切换
点击加载更多

相似问题

从所有具有"Where“条件的数据库表中检索所有行

23

从具有可选值的数据库表中检索所有组合

13

从具有相同id的多个表中检索数据

12

如何从具有相同列名多个表中检索数据

20

从mysql中具有相同字段的多个表中检索数据

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档