【问题标题】:How to define byte array in OpenAPI 3.0如何在 OpenAPI 3.0 中定义字节数组
【发布时间】:2020-07-08 12:35:36
【问题描述】:

我正在将我的 API 从 Swagger 2.0 迁移到 OpenAPI 3.0。在 DTO 中,我有一个指定为字节数组的字段。 DTO 的 Swagger 定义:

Job:
   type: object
   properties:
       body:
         type: string
         format: binary

使用上面的定义,swagger 代码生成器生成一个接受byte[] 数组作为主体字段new Job().setBody(new byte[1]) 的对象。

将 API 定义转换为 OpenAPI 后,该对象的定义保持不变,但 openapi 代码生成器现在需要 org.springframework.core.io.Resource 而不是 byte[] (new Job().setBody(org.springframework.core.io.Resource))。在我的代码中有些地方我必须序列化 Job 对象,但由于Resource 没有实现可序列化,因此不再可能。

作为一种解决方法,我将类型更改为object

Job:
   type: object
   properties:
       body:
         type: object

现在我必须将主体转换为String,然后在任何地方转换为byte[],我宁愿像以前一样将类型设为byte[]

如何使用 OpenAPI 3.0 将类型指定为 byte[]

【问题讨论】:

    标签: java spring openapi openapi-generator


    【解决方案1】:

    你必须设置类型:字符串和格式:字节

    原答案:when using swagger codegen getting 'List<byte[]>' instead of simply 'byte[]'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多