是否可以禁止OpenAPI生成到接口的默认Optional <NativeWebRequest> getRequest()?

时间:2019-10-09 14:21:01

标签: openapi openapi-generator

我有一个OpenAPI 3.0文件,该文件指定了两个带有操作的REST资源,比如:

openapi: 3.0.0
[...]
paths:
  /a:
    post:
      [...]
  /b
    post:
      [...]

然后,我像这样使用openapi-generator-maven-plugin

<plugin>
  <groupId>org.openapitools</groupId>
  <artifactId>openapi-generator-maven-plugin</artifactId>
  <version>4.1.2</version>
  <configuration>
    [...]
    <configOptions>
      <interfaceOnly>true</interfaceOnly>
      [...]
    </configOptions>
 </configuration>
</plugin>

要生成Java接口,请给我:

public interface AApi {

  default Optional<NativeWebRequest> getRequest() {
    return Optional.empty();
  }

  default ResponseEntity<String> postA([...]) { [...] }

}

public interface BApi {

  default Optional<NativeWebRequest> getRequest() {
    return Optional.empty();
  }

  default ResponseEntity<String> postB([...]) { [...] }

}    

最后,我想编写一个实现两个接口的类:

class TheController implements AApi, BApi { [...] }

但是,getRequest()方法很麻烦,因为Java无法继承两个具有相同名称的默认实现。

有没有一种方法可以抑制这种方法的产生? (或者其他我可以想到的实现这两个接口的方法?)

1 个答案:

答案 0 :(得分:1)

您可以在实现控制器的类中重写getRequest()方法。

有关更多信息,请参见https://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.8.4