• swagger和openAPI: 上传文件


    [

    上传文件

    在OpenAPI 3.0中,您可以描述直接使用请求内容上传的文件和使用multipart请求上传的文件。

    使用requestBody关键字来描述包含文件的请求负载。在下content,指定请求媒体类型(如image/pngapplication/octet-stream)。文件使用or 的type: string模式,具体取决于文件内容的编码方式。format: binaryformat: base64

    例如:

    requestBody:
      content:
        image/png:
          schema:
            type: string
            format: binary

    该定义对应于如下所示的HTTP请求:

    POST /upload
    Host: example.com
    Content-Length: 808
    Content-Type: image/png
    
    [file content goes there]

    通过多部分请求上传

    要描述与其他数据一起发送的文件,请使用multipart媒体类型。例如:

          requestBody:
            content:
              multipart/form-data:
                schema:
                  properties:
                    orderId:
                      type: integer
                    userId:
                      type: integer
                    fileName:
                      type: string
                      format: binary

    相应的HTTP请求有效载荷将包含多个部分:

    POST /upload
    Host: example.com
    Content-Length: 2740
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryWfPNVh4wuWBlyEyQ
    
    ------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
    Content-Disposition: form-data; name="orderId"
    
    1195
    ------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
    Content-Disposition: form-data; name="userId"
    
    545
    ------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
    Content-Disposition: form-data; name="fileName"; filename="attachment.txt"
    Content-Type: text/plain
    
    [file content goes there]
    ------WebKitFormBoundaryWfPNVh4wuWBlyEyQ

    多文件上传

    使用multipart媒体类型定义上传任意数量的文件(一组文件):

          requestBody:
            content:
              multipart/form-data:
                schema:
                  properties:
                    filename:
                      type: array
                      items:
                        type: string
                        format: binary

    相应的HTTP请求如下所示:

    POST /upload
    Host: example.com
    Content-Length: 2740
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryWfPNVh4wuWBlyEyQ
    
    ------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
    Content-Disposition: form-data; name="fileName"; filename="file1.txt"
    Content-Type: text/plain
    
    [file content goes there]
    ------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
    Content-Disposition: form-data; name="fileName"; filename="file2.png"
    Content-Type: image/png
    
    [file content goes there]
    
    ------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
    Content-Disposition: form-data; name="fileName"; filename="file3.jpg"
    Content-Type: image/jpeg
    
    [file content goes there]
    
    ------WebKitFormBoundaryWfPNVh4wuWBlyEyQ
    ]
    转载请保留页面地址:https://www.breakyizhan.com/swagger/2965.html
  • 相关阅读:
    e.target和e.event和event.srcElement
    js代码优化
    史上最全的CSS hack方式一览
    学习NodeJS第一天:node.js引言
    响应式布局
    HTML+CSS编写规范
    英文SEO外部链接资源收集之常用的footprints
    判别木马
    php简单命令代码集锦
    zencart 新页面调用好功能代码集:
  • 原文地址:https://www.cnblogs.com/breakyizhan/p/13296114.html
Copyright © 2020-2023  润新知