使用 RAML 在 HTTP 请求中发送多个文件

Posted

技术标签:

【中文标题】使用 RAML 在 HTTP 请求中发送多个文件【英文标题】:Send multiple files in HTTP request using RAML 【发布时间】:2018-03-27 19:01:46 【问题描述】:

我正在使用 RAML 编写 HTTP POST 请求,并且需要编写它以便能够在请求中发送多个文件。每次文件的数量可能不同,因此需要它是动态的。我该怎么做?

这最终将用于 Anypoint Studio 6.2 和 Mule 3.8.3

谢谢

【问题讨论】:

【参考方案1】:

如果您使用的是 RAML 版本 0.8,请尝试以下构造。它具有指定多次上传可能性的 repeat 属性

#%RAML 0.8
title: FileUploadExample
baseUri: localhost
/uploadMultipleFile:
  description: Uploads Multiple file 
  post:
    body:
        multipart/form-data:
         formParameters:
             file:
               description: The file to be uploaded. Supported Formats are gif, jpeg, jpg, png etc.
               required: true
               type: file
               repeat: true

如果您使用的是 RAML 1.0 版 由于 repeatRAML 0.8 规范 中,它在 RAML 1.0 中被删除,以支持 RAML 数据类型抽象。 因此,对于 RAML 1.0,您可以使用类似于以下构造的内容。

#%RAML 1.0
title: FileUploadExample
baseUri: localhost
types:
  MultiUploadFileType:
       properties:
          file:
            description: The file to be uploaded. Supported Formats are gif, jpeg, jpg, png etc.
            required: true
            type: file

/uploadMultipleFile:
  description: Uploads Multiple file
  post:
    body:
      multipart/form-data:
        type: MultiUploadFileType[]
        minItems: 1

在这里,我们使用类型抽象来定义一个类型,然后将其与 multipart/form-data 一起用作数组

【讨论】:

以上是关于使用 RAML 在 HTTP 请求中发送多个文件的主要内容,如果未能解决你的问题,请参考以下文章

是从体型(RAML)中排除属性的方法吗?

RAML 模拟服务 POST 请求在 Mule 设计中心显示 404 错误

使用 Wininet 发送多个 Http 请求

java发送post请求传送文本和文件

RAML中基于查询参数的动态调用

如何使用烧瓶将多个参数发送到路由?