form

form(parts: Array<MultipartPart>): Multipart

指定されたパートの配列を使用して ​Multipart​ データ構造を作成します。

パラメーター

名前 説明

parts

パートの配列 (​MultipartPart​ データ構造)。

次の例では、3 つのパートを含む ​Multipart​ データ構造を作成します。

最初のパートは ​Multipart::file()​ 関数を使用して ​orders.xml​ という外部ファイルをインポートします。このファイルは、Mule アプリケーションの内部 ​src/main/resources​ フォルダーにあります。この例についての詳細は、​file​ 関数のドキュメントを参照してください。

2 つ目のパートでは、項目名をキー/値ペアを含むオブジェクトの形式で入力パラメーターとして受け入れる ​Multipart::field()​ 関数のバージョンを使用して、キーを任意の順序で渡せるようにします。このパートでも省略可能な ​fileName​ パラメーターを指定しません。指定すると、​fileName​ はそのパートの ​Content-Distribution​ 要素に含まれます。​mime​ 項目も省略可能です。指定すると、この項目は ​Content-Type​ 要素を ​mime​ 値に設定します。この場合、​Content-Type​ は ​text/plain​ に設定されます。

3 つ目のパートではよりコンパクトなバージョンの ​Multipart::field()​ 関数を使用して必須および省略可能なパラメーターを正しい順序で入力パラメーターとして設定します。最初の 3 つのパラメーター ​name​、​value​、​mime​ は必須です。​fileName​ パラメーターは省略可能です。コンテンツをファイルから読み取る場合やファイルに書き込む場合にのみ使用します。このバージョンでは、​mime​ パラメーターは ​Content-Type​ 要素としての出力、​fileName​ は ​Content-Distribution​ 要素の ​filename​ パラメーターとしての出力になります。

ソース

%dw 2.0
import dw::module::Multipart
output multipart/form-data
var myOrders = "./orders.xml"
var fileArgs = { name: "file", path: myOrders, mime: "application/xml", fileName: "myorders.xml"}
var fieldArgs = {name:"userName",value: "Annie Point", mime: "text/plain"}
---
Multipart::form([
  Multipart::file(fileArgs),
  Multipart::field(fieldArgs),
  Multipart::field("myJson", {"user": "Annie Point"}, "application/json", "userInfo.json")
])

出力

------=_Part_146_143704079.1560394078604
Content-Type: application/xml
Content-Disposition: form-data; name="file"; filename="myorders.xml"
<?xml version='1.0' encoding='UTF-8'?>
<orders>
  <order>
    <item>
      <id>1001</id>
      <qty>1</qty>
      <price>$100</price>
    </item>
    <item>
      <id>2001</id>
      <qty>2</qty>
      <price>$50</price>
    </item>
  </order>
</orders>
------=_Part_146_143704079.1560394078604
Content-Type: text/plain
Content-Disposition: form-data; name="userName"
Annie Point
------=_Part_146_143704079.1560394078604
Content-Type: application/json
Content-Disposition: form-data; name="myJson"; filename="userInfo.json"
{
  "user": "Annie Point"
}
------=_Part_146_143704079.1560394078604--

次の例は、​multipart/form-data​ 出力形式と互換性のある DataWeave コードを使用してデータ構造を作成し、どうすれば ​form​ 関数を使用することなく、​multipart/form-data​ 出力と互換性のあるデータ構造を手動で作成できるかを示しています。

次の構造では、パートキー ​part1​ と ​part2​ は ​multipart/form-data​ 出力から削除されています。

ソース

%dw 2.0
import dw::module::Multipart
output multipart/form-data
var firstPart = "content for my first part"
var secondPart = "content for my second part"
---
{
  parts: {
    part1: Multipart::field({name:"myFirstPart",value: firstPart}),
    part2: Multipart::field("mySecondPart", secondPart)
  }
}

出力

------=_Part_320_1528378161.1542639222352
Content-Disposition: form-data; name="myFirstPart"

content for my first part
------=_Part_320_1528378161.1542639222352
Content-Disposition: form-data; name="mySecondPart"

content for my second part
------=_Part_320_1528378161.1542639222352--