如何在OpenAPI 3.0中定义字节数组

时间:2020-07-08 12:35:36

标签: java spring openapi openapi-generator

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

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[]

1 个答案:

答案 0 :(得分:2)

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

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