1

我有一个 Swagger 文件 (OAS 2),其端点用于下载文件。我正在使用 openapi-generator(通过 Maven 插件)来生成 Java / OpenFeign 客户端代码。

问题是这个特定的端点转换为:

 @RequestLine("GET /files/{id}/content")
 @Headers({
    "Accept: application/octet-stream",
 })
 File downloadByIdUsingGET(@Param("id") String id);

null调用时返回。据此正确的方法配置文件应该是:

 Response downloadByIdUsingGET(@Param("id") String id);

事实上,如果我自己编写接口,我可以使用这种方法:

Response downloadResponse = api.downloadByIdUsingGET(id);
InputStream downloadInputStream = downloadResponse.body().asInputStream();

所以问题是:如何配置生成器以使用Response此端点的类型?

我努力了:

<typeMappings>file=feign.Response</typeMappings>

但这会将Filetype替换为Response任何地方,包括在我不想要的其他端点中,特别是(猜猜是什么)上传端点,它生成为:

  FileProperties uploadUsingPOST(@Param("file") File file);

并且像这样工作正常。

这是 Swagger 文件的相关部分:

 "/files/{id}/content": {
      "get": {
        "produces": [
          "application/octet-stream"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string",
          }
        ],
        "responses": {
          "200": {
            "description": "Successful",
            "schema": {
              "type": "file"
            }
          }
        }
      }
    }
4

0 回答 0