如何解决开放 API 生成器更改 Multipart/Form-Data 的函数定义签名
我编写了一个 POST API,用于创建具有基本属性的实体。
post:
operationId: createEntity
summary: Create an Entity
parameters:
- $ref: '#/components/parameters/organizationKey'
tags:
- Entity
requestBody:
required: true
content:
application/json:
schema:
"$ref": "#/components/schemas/EntityParams"
引用的架构 EntityParams 看起来像这样
type: object
properties:
attr1:
type: string
example: 'Meguro Office'
attr2:
type: string
example: office
attr3:
type: string
example: office
根据上述规范,如果我生成开放的api函数,我会得到如下签名
createEntity: async (organizationKey: string,entityParams: EntityParams,options: any = {})
上面的签名效果很好。
问题是什么:我不得不更改 api 以适应图像上传。所以我在 EntityParams 中添加了图片上传参数并将 content-type 更改为 multipart/form-data 如下
type: object
properties:
attr1:
type: string
example: 'Meguro Office'
attr2:
type: string
example: office
attr3:
type: string
example: office
thumbnail:
type: string
format: binary
并更改了 api 规范如下
post:
operationId: createEntity
summary: Create an Entity
parameters:
- $ref: '#/components/parameters/organizationKey'
tags:
- Entity
requestBody:
required: true
content:
multipart/form-data:
schema:
"$ref": "#/components/schemas/EntityParams"
发布此更改后,openapi-generator 正在创建具有以下签名的 api 函数
createEntity: async (organizationKey: string,attr1: string,attr2: string,attr3: string,thumbnail: any?)
上述语法的问题是在调用此函数时,我必须手动显式地传递所有键及其值。当内容类型为应用程序 json 时,情况并非如此。之前的签名帮助开发人员只传递包含属性键的对象。 我无法为此找到任何解决方案。此外,我不想使用此签名,因为它不可扩展(如果有更多属性怎么办。我不想手动将每个属性作为函数参数传递)。
请告诉我如何解决这个问题。我尝试过风格和爆炸选项。但他们就是不工作!!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。