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

Java 如何在OpenAPI 3.0中定义字节数组,java,spring,openapi,openapi-generator,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[]数组作为body字段new Job().setBody(new byte[1]) 将API定义转

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

Job:
   type: object
   properties:
       body:
         type: string
         format: binary
使用上面的定义,swagger代码生成器生成一个对象,该对象接受
byte[]
数组作为body字段
new Job().setBody(new byte[1])

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

作为解决方法,我将类型更改为
对象

Job:
   type: object
   properties:
       body:
         type: object
现在我必须将主体转换为
String
,然后到处转换为
byte[]
,我希望像以前一样将类型转换为
byte[]


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

必须设置type:string和format:byte

原始答复: