首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swagger到Java从二进制格式的OpenAPI组件生成不正确的文件响应实体

Swagger到Java从二进制格式的OpenAPI组件生成不正确的文件响应实体
EN

Stack Overflow用户
提问于 2020-02-12 16:10:26
回答 3查看 2.9K关注 0票数 7

我使用swagger-codegen-maven-plugin从OpenAPI文件(OpenAPI 3.0.2)生成Spring接口。

代码语言:javascript
复制
<groupId>io.swagger.codegen.v3</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>3.0.14</version>

一个rest的响应应该是PDF文件。

代码语言:javascript
复制
components:
    schemas:
        contractFile:
            type: string
            format: binary

生成的Java接口包含以下方法

代码语言:javascript
复制
default ResponseEntity<File> getContract(@ApiParam(value = "File to download",required=true) @PathVariable("uid") String uid) {
...
}

文件类表示文件系统的路径,但文件系统上没有文件,只有java内存中的字节,我不想将它们保存为磁盘文件。

我希望getContract从内存中的流/字节返回一些StreamResource或文件的其他表示形式。这有可能是通过swagger-codegen-maven-plugin还是其他选项实现的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-20 16:42:32

最后,我从

代码语言:javascript
复制
<plugin>
  <groupId>io.swagger.codegen.v3</groupId>
  <artifactId>swagger-codegen-maven-plugin</artifactId>
  <version>3.0.14</version>
  ...
</plugin>

代码语言:javascript
复制
<plugin>
  <groupId>org.openapitools</groupId>
  <artifactId>openapi-generator-maven-plugin</artifactId>
  <version>4.2.3</version>
  ...
</plugin>

这个插件正确地实现了它并生成了资源,而不是ResponseEntity

票数 2
EN

Stack Overflow用户

发布于 2020-02-18 19:13:40

试着做这样的事情:

代码语言:javascript
复制
responses:
     '200':
          description: A PDF file
          content:
            application/pdf:
              schema:
                type: string
                format: binary
票数 1
EN

Stack Overflow用户

发布于 2020-02-18 19:25:03

也许你可以试试这样的方法

代码语言:javascript
复制
/myendpoint:
    get:
      tags: [myendpint]
      summary: my cool endpoint
      operationId: getStuff
      x-custom-return-type: 'java.something.stream.Stream'

而不是使用胡子,并在带有供应商扩展的胡子文件中指定它。

代码语言:javascript
复制
ResponseEntity<{{#responseWrapper}}{{
    .}}<{{/responseWrapper}}{{>returnTypes}}{{#vendorExtensions.x-custom-return-type}}

我将它用于接口API,也许您也可以在您的情况下使用它。

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

https://stackoverflow.com/questions/60192594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档