我有一种情况,其中POST方法返回“ image / png”内容。该API在Postman中可以完美运行,我可以看到图像。
我使用Swagger来记录我的API。由于某些原因,“试用”功能会使返回图像的任何POST方法崩溃。加载时冻结,我在浏览器控制台中看到以下内容:
cannot parse JSON/YAML content
swagger-ui-min-js:14 Uncaught TypeError: Failed to execute 'createObjectURL' on 'URL': No function was found that matched the signature provided.
at C.n.showStatus (swagger-ui-min-js:14)
at showCompleteStatus (swagger-ui-min-js:14)
at response (swagger-ui-min-js:9)
at h (swagger-ui-min-js:7)
at t.on.response (swagger-ui-min-js:7)
at swagger-ui-min-js:7
at h.callback (swagger-ui-min-js:13)
at h.<anonymous> (swagger-ui-min-js:13)
at h.r.emit (swagger-ui-min-js:13)
at XMLHttpRequest.n.onreadystatechange (swagger-ui-min-js:13)
关于如何解决的任何想法?该API有效(至少在Postman中有效),只是Swagger UI似乎有问题。我通过nuget软件包Swashbuckle.Core和Swashbuckle版本5.6.0安装了Swagger
正如评论中所阐明的那样,M_M最初使用Swagger UI 2.x,并且规格如下所示:
paths:
/api/PngImage:
post:
produces:
- application/json
- text/json
- text/html
responses:
200:
description: OK
schema:
type: object
规范有两个问题:
type: file
,而不是type: object
。在Swagger UI 2.x中,“无法解析JSON / YAML内容”错误是由错误引起的produces
-UI需要JSON响应,但会获得二进制响应。更改produces
为image/png
应该可以解决UI 2.x的问题。
但是,Swagger UI 3.0.19存在另一个问题-当响应为图像时,UI将请求重复到同一端点,但使用GET来显示图像而不是呈现现有响应。因此,如果端点不接受GET,或者GET返回的图像与POST不同,则不会显示原始图像响应。HelderSepu向Swagger UI开发人员报告了双重请求问题,该问题已在Swagger UI 3.0.20中修复。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句