我正在将 API 从 Swagger 2.0 迁移到 OpenAPI 3.0。在 DTO 中,我有一个指定为字节数组的字段。
Swagger 对 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[]
和以前一样。
我如何将类型指定为byte[]
使用 OpenAPI 3.0?
您必须设置类型:字符串和格式:字节
原答案:当使用 swagger codegen 获取 'List' 而不是简单的 'byte[]' 时 https://stackoverflow.com/questions/54010889/when-using-swagger-codegen-getting-listbyte-instead-of-simply-byte
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)