无法通过Swagger定义我的API;这个设计不好吗?
我们的一个API接受来自用户的证书。在当前设计中,用户将原始证书数据转储到有效负载中,并使用设置为application/x-pkcs12的内容类型发出POST请求。 因此,本质上,我们的API接受请求主体中文件的原始字节 如果我试图通过Swagger定义这个API,那么我就不能这样做。因为,如果我错了,请纠正我,此操作的参数必须是“in”body,并且此参数的“type”必须是file。 Swagger要求所有主体参数都必须具有Schema对象,并且file类型的所有参数都应将“in”值设置为formData。这两项要求都与我们的情况相矛盾 所以我的问题是,这是招摇过市的局限性吗?或者这只是糟糕的API设计,我们是否应该以其他方式构建/设计我们的API 我对API的世界相当陌生,所以我不确定这是哪种情况无法通过Swagger定义我的API;这个设计不好吗?,api,rest,swagger,Api,Rest,Swagger,我们的一个API接受来自用户的证书。在当前设计中,用户将原始证书数据转储到有效负载中,并使用设置为application/x-pkcs12的内容类型发出POST请求。 因此,本质上,我们的API接受请求主体中文件的原始字节 如果我试图通过Swagger定义这个API,那么我就不能这样做。因为,如果我错了,请纠正我,此操作的参数必须是“in”body,并且此参数的“type”必须是file。 Swagger要求所有主体参数都必须具有Schema对象,并且file类型的所有参数都应将“in”值设置为
提前谢谢。我相信这还是可以做到的。正文参数架构的类型应为[]字节。调用API时,参数值应为文件内容的base-64编码字符串。这类似于在请求正文中发送二进制.jpg文件的内容。Swagger 2.0允许文件类型的参数。这似乎适合您的用例
parameters:
- name: cert
in: formData
description: The certificate
required: true
type: file
OpenAPI 3.0支持您的场景。以前的版本OpenAPI/Swagger 2.0只允许使用多部分/表单数据请求上传文件,但3.0也支持上传原始文件 路径: /证书: 职位: 请求主体: 必填项:true 内容: 应用程序/x-pkcs12: 模式: 类型:字符串 格式:二进制 响应: ... 更多信息: