json OpenAPI-提供一个链接以下载pdf格式的响应示例(添加pdf格式的示例)

ee7vknir  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(106)

在Openapi中,响应的例子需要在Swagger UI/Redoc等中提供下载链接。
我使用OpenAPI 3.1和API之一。我需要显示响应的例子,作为托管(本地)基于External Examples的PDF文件。它可能是用于下载PDF的UI链接。在尝试了各种方法后,我无法在Swagger UI和Redoc UI中获得下载文件的链接。
我正在使用基于JSON的OpenAPI。我已经参考了Open API 3 - add headers on individual content-type in responses并在JSON中实现了它。但在我的情况下,我无法使其工作。
样品如下:

"/myapplication/pdfresponse": { 
"get": { 
    "responses": { 
        "200": { 
                "description": "PDF format response.",      
                "content": {
                  "application/pdf": {
                  "schema":{
                    "type": "string",
                    "format":"binary"
                    },
                  "examples":{ 
                    "exampleName":{
                        "summary":"PDF format.",
                        "externalValue": "examples/abc.pdf"
                    } 
                   }
                  } 
                },
                "headers":{
                  "Content-Disposition":{
                    "schema":{
                      "type": "string",
                      "example": "attachment; filename=abc.pdf"               
                      } 
                    } 
                  }          
               }
              }

字符串
可能是标题的内容配置是错误的或其他东西是必需的。请提供JSON的样本或让我知道,如果我错过了什么。谢谢...!

mv1qrgav

mv1qrgav1#

我想你要求的是提供一个pdf文件的下载网址。
您需要使用externalValue并提供作为下载位置的uri
除非你把文件存放在本地以外的地方,否则这可能不会起作用。我有一种感觉,cors会在ui的本地示例上阻止这个请求。
我知道在写这篇文章的时候,Redoc并没有解决externalValue的uri。如果你想评论,贡献或者以其他方式了解它的进展,你可以关注this issue

{
    "openapi": "3.1.0",
    "info": {
        "title": "test api",
        "version": "1.0.0"
    },
    "paths": {
        "/api/v1/thing": {
            "get": {
                "responses": {
                    "200": {
                        "description": "thing",
                        "content": {
                            "application/pdf": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                },
                                "examples": {
                                    "pdf_example": {
                                        "summary": "a download link for a pdf",
                                        "externalValue": "file://C:\\Users\/<user>\/Downloads\/1testing.pdf"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

字符串

相关问题