首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Swagger @OpenAPIDefinition不做任何事情

Swagger @OpenAPIDefinition不做任何事情
EN

Stack Overflow用户
提问于 2021-09-22 03:49:35
回答 2查看 826关注 0票数 0

因此,我有一个简单的Spring Boot REST API,它工作得很好,现在我为ui和核心添加了一些swagger依赖项,并使用@ApiIgnore或@Operation等标记进行了一些测试,它们都工作得很好,并且都在http://localhost:8080/swagger-ui/#/中进行了更新

现在我正在尝试通过@OpenAPIDefinition标签更新API信息,在我的应用程序类中如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@OpenAPIDefinition(
        info = @Info(
            title = "the title",
            version = "0.0",
            description = "My API",
            license = @License(name = "Apache 2.0", url = "http://foo.bar"),
            contact = @Contact(url = "http://gigantic-server.com", name = "Fred", email = "Fred@gigagantic-server.com")))

现在我已经阅读了here,spring boot应用程序应该执行类扫描,识别@OpenAPIDefinition bean,并在http://localhost:8080/v3/api-docs中更新生成的json。但事实并非如此,我也尝试过用openapi.yaml文件设置该信息,但也没有成功。

我怀疑这可能与我的依赖有关,因为我刚刚开始大摇大摆,仍然有点迷失,可能搞混了什么,我把我的pom.xml留在这里:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb-reactive</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>de.flapdoodle.embed</groupId>
            <artifactId>de.flapdoodle.embed.mongo</artifactId>
            <scope>test</scope>
        </dependency>
        
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
          <groupId>io.swagger.core.v3</groupId>
          <artifactId>swagger-jaxrs2</artifactId>
          <version>2.1.2</version>
        </dependency>
        <dependency>
          <groupId>io.swagger.core.v3</groupId>
          <artifactId>swagger-jaxrs2-servlet-initializer-v2</artifactId>
          <version>2.1.2</version>
        </dependency>

        
        
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

例如,我对如何继续感到有点困惑,也不明白swagger如何识别@ApiIgnore标签,而忽略@OpenAPIDefinition标签。正如我所说的,我对整个事情和堆栈溢出都是新手,所以如果我忘记添加任何相关的代码,请原谅,谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-23 00:28:03

所以在做了很多不同的事情之后,我找到了这个guide,它解释了如何改变API信息,简而言之,我在我的EmployeeController类中添加了一个@Api(tags = "Employee"),然后在我的应用程序类中添加了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Bean
      public Docket docket() {
        return new Docket(DocumentationType.OAS_30)
            .apiInfo(new ApiInfoBuilder()
                .title("Employee API")
                .description("A CRUD API to demonstrate Springfox 3 integration")
                .version("0.0.1-SNAPSHOT")
                .license("MIT")
                .licenseUrl("https://opensource.org/licenses/MIT")
                .build())
            .tags(new Tag("Employee", "Endpoints for CRUD operations on employees"))
            .select().apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
            .build();
      } 

这似乎解决了问题,我现在想知道如果我有多个控制器会发生什么,我希望这对处于困境中的任何人都有帮助,总体问题似乎是这是一种与springfox相关的方法来更改API文档,而之前的方法是与swagger-core相关的吗?正如我所说的,我是这个世界的新手,所以如果有人能告诉我为什么它不能工作,那就太棒了,谢谢!

票数 0
EN

Stack Overflow用户

发布于 2021-09-22 11:38:41

尝试删除一些不必要的依赖关系:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger-ui</artifactId>
  <version>3.0.0</version>
</dependency>
<dependency>
  <groupId>io.swagger.core.v3</groupId>
  <artifactId>swagger-jaxrs2</artifactId>
  <version>2.1.2</version>
</dependency>
<dependency>
  <groupId>io.swagger.core.v3</groupId>
  <artifactId>swagger-jaxrs2-servlet-initializer-v2</artifactId>
  <version>2.1.2</version>
</dependency>

springfox-boot-starter应该已经把它们带进来了。

如果这不起作用,您可以随时执行以下操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Configuration
public class SwaggerConfiguration {

    @Bean
    public OpenAPI openAPI() {
        return new OpenAPI()
                .info(new Info().title("the title").version("0.0").description("My API")
                    .contact(new Contact().name("Fred").url("http://gigantic-server.com").email("Fred@gigagantic-server.com")));
    }

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

https://stackoverflow.com/questions/69283628

复制
相关文章
对比Excel,Python pandas删除数据框架中的行
对于Excel来说,删除行是一项常见任务。本文将学习一些从数据框架中删除行的技术。
fanjy
2022/04/13
4.6K0
对比Excel,Python pandas删除数据框架中的行
python pandas fillna_pandas删除行
DataFrame.fillna(self, value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
全栈程序员站长
2022/09/22
1.5K0
PandasGUI:使用图形用户界面分析 Pandas 数据帧
数据预处理是数据科学管道的重要组成部分,需要找出数据中的各种不规则性,操作您的特征等。Pandas 是我们经常使用的一种工具,用于处理数据,还有 seaborn 和 matplotlib用于数据可视化。PandasGUI 是一个库,通过提供可用于制作
润森
2022/09/22
3.9K0
PandasGUI:使用图形用户界面分析 Pandas 数据帧
pandas数据清洗-删除没有序号的所有行的数据
pandas数据清洗-删除没有序号的所有行的数据 问题:我的数据如下,要求:我想要的是:有序号的行留下,没有序号的行都不要 图片 【代码及解析】 import pandas as pd filepath="E:/yhd_python/pandas.read_excel/student.xlsx" df=pd.read_excel(filepath,sheet_name='Sheet1',skiprows=1) df.tail() 先导入pands包,用read_excel读取文件,工作
哆哆Excel
2022/10/31
1.6K0
删除重复值,不只Excel,Python pandas更行
在Excel中,我们可以通过单击功能区“数据”选项卡上的“删除重复项”按钮“轻松”删除表中的重复项。确实很容易!然而,当数据集太大,或者电子表格中有公式时,这项操作有时会变得很慢。因此,我们将探讨如何使用Python从数据表中删除重复项,它超级简单、快速、灵活。
fanjy
2022/04/13
6.1K0
删除重复值,不只Excel,Python pandas更行
pandas dropna删除有空值的行_pandas中导出缺失值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/28
2.2K0
在pandas中遍历DataFrame行
inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
用户7886150
2020/12/26
3.2K0
用Pandas从HTML网页中读取数据
本文,我们将通过几步演示如何用Pandas的read_html函数从HTML页面中抓取数据。首先,一个简单的示例,我们将用Pandas从字符串中读入HTML;然后,我们将用一些示例,说明如何从Wikipedia的页面中读取数据。
老齐
2020/05/15
9.6K0
用Pandas从HTML网页中读取数据
pandas’_pandas 删除列
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/02
2.7K0
pandas’_pandas 删除列
使用 Python 从字典键中删除空格
Python是广泛用于数据分析,Web开发,AI的平台,并在自动化的帮助下执行许多不同类型的任务。对我们来说,了解 python 的不同功能很重要。在本文中,我们将了解字典功能以及如何使用 python 删除键之间的空格。此功能主要用于根据需要存储和检索数据,但有时字典的键值之间可能存在空格。当用户希望访问数据时,甚至在要编辑数据的情况下,这会导致错误。
很酷的站长
2023/08/11
3080
使用 Python 从字典键中删除空格
使用 Pandas 在 Python 中绘制数据
在有关基于 Python 的绘图库的系列文章中,我们将对使用 Pandas 这个非常流行的 Python 数据操作库进行绘图进行概念性的研究。Pandas 是 Python 中的标准工具,用于对进行数据可扩展的转换,它也已成为从 CSV 和 Excel 格式导入和导出数据的流行方法。
用户1880875
2021/09/15
6.9K0
对比Excel,Python pandas删除数据框架中的列
删除列也是Excel中的常用操作之一,可以通过功能区或者快捷菜单中的命令或者快捷键来实现。上一篇文章,我们讲解了Python pandas删除数据框架中行的一些方法,删除列与之类似。然而,这里想介绍一些新方法。取决于实际情况,正确地使用一种方法可能比另一种更好。
fanjy
2022/04/13
7.2K0
对比Excel,Python pandas删除数据框架中的列
pandas删除某列有空值的行_drop的之
dropna()方法,能够找到DataFrame类型数据的空值(缺失值),将空值所在的行/列删除后,将新的DataFrame作为返回值返回。
全栈程序员站长
2022/10/02
11.9K0
pandas删除某列有空值的行_drop的之
pandas行转列
需求 原始文件 Year Country medal no of medals 1896 Afghanistan Gold 5 1896 Afghanistan Silver 4 1896 Afghanistan Bronze 3 1896 Algeria Gold 1 1896 Algeria Silver 2 1896 Algeria Bronze 3 目标 Year Country Gold Silver Bronze
jiewuyou
2022/09/29
6130
如何使用 Python 只删除 csv 中的一行?
我们将使用 drop() 方法从任何 csv 文件中删除该行。在本教程中,我们将说明三个示例,使用相同的方法从 csv 文件中删除行。在本教程结束时,您将熟悉该概念,并能够从任何 csv 文件中删除该行。
很酷的站长
2023/08/11
8310
如何使用 Python 只删除 csv 中的一行?
pandas中的loc和iloc_pandas获取指定数据的行和列
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/178799.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
10.2K0
pandas中的loc和iloc_pandas获取指定数据的行和列
Pandas删除数据的几种情况
参考资料: 1、Dropping Rows And Columns In pandas Dataframe 2、pandas过滤包含特定字符串的行 3、Pandas dataframe怎么删除名称包含特定字符串的列? 4、Pandas Drop
大江小浪
2018/09/19
1.8K0
使用VBA删除工作表多列中的重复行
自Excel 2010发布以来,已经具备删除工作表中重复行的功能,如下图1所示,即功能区“数据”选项卡“数据工具——删除重复值”。
fanjy
2022/11/16
11.4K0
使用VBA删除工作表多列中的重复行
使用pandas的话,如何直接删除这个表格里面X值是负数的行?
前几天在Python白银交流群【空翼】问了一个pandas处理Excel数据的问题,提问截图如下:
Python进阶者
2023/03/02
2.9K0
使用pandas的话,如何直接删除这个表格里面X值是负数的行?
Linux 删除文本中的重复行
这里我做了个简单的测试,当file中的重复行不再一起的时候,uniq将服务删除所有的重复行。经过排序后,所有相同的行都在相邻,因此unqi可以正常删除重复行。
阳光岛主
2019/02/19
8.6K0

相似问题

从Pandas数据帧中删除行

116

从pandas数据帧中删除行

118

Pandas从pandas数据帧中删除行索引

30

从pandas数据帧中删除特定行

124

从数据帧中删除相同的行-Pandas

20
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文