当前位置: 首页 > 知识库问答 >
问题:

使用springdoc OpenAPI和spring boot starter数据mongodb生成OpenAPI文档

姜俊逸
2023-03-14

我已经使用MongoDB启动了一个新的Spring Boot应用程序(2.2.1.RELEASE)。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>

为了创建一些API文档,我添加了springdoc API:

<dependency>
  <groupId>org.springdoc</groupId>
  <artifactId>springdoc-openapi-ui</artifactId>
  <version>1.1.49</version>
</dependency>

由于我依赖Spring来处理RESTendpoint的生成,因此我创建了以下简单的存储库:

@RepositoryRestResource(collectionResourceRel = "profile", path = "profile")
public interface ProfileRepository extends MongoRepository<Profile, String> {

  List<Profile> findByLastname(@Param("n") String lastname);
  List<Profile> findByFirstname(@Param("n") String firstname);
  List<Profile> findByEmail(@Param("e") String email);

}

所以我没有使用@RestController的类。

我试图添加一些io。大摇大摆v3。美洲国家组织。注释ProfileRepository中方法的注释,但不会生成任何内容。

@Operation(summary = "Find Profile by first name", description = "Find Profile by first name")
List<Profile> findByLastname(@Param("n") String lastname);

http://localhost:8080/v3/api-文档/

json prettyprint-override">{
  "openapi": "3.0.1",
  "info": {
    "title": "OpenAPI definition",
    "version": "v0"
  },
  "servers": [
    {
      "url": "http://localhost:8080",
      "description": "Generated server url"
    }
  ],
  "paths": {},
  "components": {}
}

如何为Spring数据REST存储库endpoint生成API文档?

共有2个答案

林建本
2023-03-14

从springdoc openapi的1.2.11版开始,添加org。springdoc:springdoc openapi数据rest依赖项将为Spring数据restendpoint生成API文档。

xml prettyprint-override"><dependency>
  <groupId>org.springdoc</groupId>
  <artifactId>springdoc-openapi-data-rest</artifactId>
  <version>1.5.10</version>
</dependency>
松献
2023-03-14

根据这一问题:https://github.com/springdoc/springdoc-openapi/issues/282,无法从spring boot starter数据rest生成OpenAPI文档,因为

Spring-data-rest实体endpoint在运行时动态生成[...]

在上面的GitHub问题上引用用户“bnasslahsen”的话。

 类似资料:
  • 是否可以使用Azure函数自动生成OpenAPI文档,例如,在ASP中使用Swashback时,如何使用Swagggen。净核心?文档应包含不同的endpoint及其可能的输入和响应模型以及状态代码。如果我能在web ui中查看文档,那就太棒了。 目前,我发现了两个可能的方案: 针对Azure功能的虚张声势的调整:https://github.com/vitalybibikov/AzureExte

  • 我在一个带注释的对象中有几个枚举,如: 其中枚举定义为: 使用Openapi3,我可以生成一个swagger文档。我的问题是,和,翻译方式不同,如: 我希望< code>Enum2与< code>Enum1一样被记录,因此具有实际的枚举值。有什么方法可以强制这样做,或者解释为什么会这样?两个枚举基本上与示例中的相同。

  • 不幸的是,SpringFox还不支持OpenAPI3,而且,当我只想将最初的yaml公开为JSON时,使用基于反射的生成器似乎毫无意义。

  • 我正在使用NSwag并尝试将OpenAPI JSON文档转换为版本2。这是我的配置: 但是,当我将生成的OpenAPI文件粘贴到Swagger Editor中时,它会显示错误: 如何配置NSwag以生成正确的OpenAPI 2.0文件?

  • 问题内容: 这是我的GeneratePdf.java导入… Mongo连接并获取数据(): 我收到此错误,但我不明白: 问题答案: 使用JRBeanCollectionDataSource不是使用MongoDB连接器的正确方法。看一下Jaspersoft MongoDB Connector源附带的测试: MongoDbDatasource / src / test / java / com / j

  • 我有一个Spring启动应用程序,使用springdoc-openapi启用了昂首阔步的留档。由于某种原因,有一个名为/application.wadl的终结点会自动创建,而不会添加任何逻辑。有没有办法禁用wadl终结点?我没有在application.yml文件中添加特定的Wadl配置