我正在将我的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[]
?
答案 0 :(得分:2)
您必须设置类型:字符串和格式:字节
原始答案:when using swagger codegen getting 'List<byte[]>' instead of simply 'byte[]'