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

无法生成api-doc时@restController实现任何接口-springdoc-openapi-ui

贺雅健
2023-03-14

有关我的项目的信息:

  • Java11.01
  • springdoc-openapi-ui 1.5.2
  • Spring芯5.1.2。发布
  • Spring引导2.1.0。发布

使用此控制器而不实现此接口,我可以生成此API文档:

@RestController
public class MissionApiImpl implements MissionApi {

  @Override
  @GetMapping("/test")
  public ResponseEntity<Void> test() {
    return new ResponseEntity( HttpStatus.OK );
  }
}

生成的单据:

{"openapi":"3.0.1","info":{"title":"OpenAPI definition","version":"v0"},"servers":
[{"url":"http://localhost:9000/mgb/v6.0.0","description":"Generated server url"}],"paths":{"/test":
{"get":{"tags":["mission-api-impl"],"operationId":"test","responses":{"200":
{"description":"OK"}}}}},"components":{}}

但是通过这个接口:

public interface MissionApi {

  ResponseEntity<Void> test();
}

我有一个错误:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 0
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:890)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 0
    at org.springframework.web.method.HandlerMethod$HandlerMethodParameter.getParameterAnnotations(HandlerMethod.java:430)
    a

知道为什么吗?

我试图迁移此Getter注释到接口等,但仍然是相同的错误。

共有1个答案

黄和怡
2023-03-14

我也犯了同样的错误

springBootVersion = 2.1.1.RELEASE
springdocVersion = 1.5.9

当我升级到

springBootVersion = 2.1.3.RELEASE

所以,这可能是Spring Boot错误或某些Spring Boot依赖项中的错误

 类似资料:
  • OpenAPI3.0规范规定,没有任何类型的模式将匹配任何数据类型。 没有类型的模式匹配任何数据类型--数字、字符串、对象等等。 因此,对此进行建模的正确方法是下面的Swagger定义,其中没有属性: 但是,每个开放问题Swagger-core#3834,Java值都映射到OpenAPI类型,而不是任意类型。如上所述,这意味着这样的API返回或接受不是OpenAPI的类型是不正确的,例如、、等。

  • **代码:(类名已重命名)** 两个版本中的CheeseDTO YAML: 使用springdoc-openapi-ui 1.3.9,我的yaml是这样生成的: 昂首阔步3注释: OpenAPi生成器maven插件 有没有办法用springdoc-openapi-ui>1.4.0生成?我必须更改我的大摇大摆的注释或更改我的java生成器吗?

  • 我试图在maven构建期间生成swagger.json文件。 这是我在pom.xml中从docs获得的插件。 任何帮助都将不胜感激。

  • 我们最近从springfox迁移到springdoc openapi 3。其中一个API返回大约2MB的数据,它在springfox中正常工作,但是springdoc openapi用户界面在几分钟内没有响应,渲染也需要2分钟以上。有什么办法可以解决吗?

  • 我有一个Spring Boot(kotlin)项目,我使用springdoc openapi生成openapi 3规范。我的数据模型如下所示: 还有一个简单的控制器,如下所示: 生成的yaml为: 这里的问题是我的控制器可以返回或,这在返回类型中指定。我期望生成的模式是: 有没有办法做到这一点?

  • 我正在使用openapi生成器生成java类。 我希望模型类实现openapi生成器尚未生成的外部接口。 有什么东西可以在yaml模型中定义,或者有一个属性可以传递给openapi生成器maven插件,允许这种行为? 所需行为的示例: