• 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
  • 相关阅读:
    使用MyBatis时接收值和返回值选择Map类型或者实体类型
    如何在开发时部署和运行前后端分离的JavaWeb项目
    6月22日项目CodeReview问题及总结
    【转载】CSRF攻击及其应对之道
    【转载】MySQL事务以及SELECT ... FOR UPDATE的使用
    win10打开SQLServer, SQL Server 配置管理器
    iframe标签和frame标签异同
    8款让你耳目一新的软件开发工具
    快速开发平台的比较
    CSDN:Java Web 开发平台 WebBuilder 专访
  • 原文地址:https://www.cnblogs.com/breakyizhan/p/13296114.html
Copyright © 2020-2023  润新知