readUrl

readUrl(url: String, contentType: String = "application/dw", readerProperties: Object = {}): Any

URL (クラスパスベースの URL を含む) を読み取り、解析後のコンテンツを返します。 この関数は、​read​ 関数と同様に機能します。

クラスパスベースの URL は ​classpath:​ プロトコルプレフィックスを使用します (例: classpath://myfolder/myFile.txt​。​myFolder​ は Mule プロジェクトの ​src/main/resources​ の下に配置されています)。URL 以外の場合、​readURL​ は ​read​ と同じ引数を受け入れます。

パラメーター

名前 説明

url

読み取る URL 文字列。クラスパスベースの URL も受け入れます。

contentType

サポートされる形式 (または MIME タイプ)。デフォルト: application/dw​。

readerProperties

(省略可能) リーダー設定プロパティを定義します。他の形式およびリーダー設定プロパティについては、 「サポートされるデータ形式」​を参照してください。

次の例では、URL から JSON オブジェクトを読み取ります。(読みやすいように、下記の出力値は ​…​​ で短縮されています)。

ソース

%dw 2.0
output application/json
---
readUrl("https://jsonplaceholder.typicode.com/posts/1", "application/json")
DataWeave

出力

{ "userId": 1, "id": 1, "title": "sunt aut ...", "body": "quia et ..." }
JSON

次の例では、Studio の ​src/main/resources​ ディレクトリに配置されている ​myJsonSnippet.json​ ファイルから JSON オブジェクトを読み取ります。(このファイルのサンプル JSON コンテンツは以下の「入力」セクションで示されています)。 ファイルのコンテンツを読み取ったら、スクリプトは、選択された項目を JSON から CSV に変換します。サンプルデータで DataWeave スクリプトを試す場合、特に取得元データが大きく、スクリプトが複雑なときは、この方法でファイルを読み取ることが役立つ可能性があります。

ソース

%dw 2.0
var myJsonSnippet = readUrl("classpath://myJsonSnippet.json", "application/json")
output application/csv
---
(myJsonSnippet.results map(item) -> item.profile)
DataWeave

入力

出力

firstName,lastName,email
john,doe,johndoe@demo.com
jane,doe,janedoe@demo.com
CSV

次の例では、URL から CSV ファイルを読み取り、ヘッダーがないことを示すようにリーダープロパティを設定し、データを JSON に変換します。

ソース

%dw 2.0
output application/json
---
readUrl("https://mywebsite.com/data.csv", "application/csv", {"header" : false})
DataWeave

入力

Max,the Mule,MuleSoft

出力

[
 {
   "column_0": "Max",
   "column_1": "the Mule",
   "column_2": "MuleSoft"
 }
]
JSON

次の例では、Studio の ​src/main/resources​ ディレクトリから単純な ​dwl​ ファイルを読み取って、そのファイルからキー ​name​ の値を動的に読み取ります。(入力ファイルのサンプルコンテンツは以下の「入力」セクションで示されています)。

ソース

%dw 2.0
output application/json
---
(readUrl("classpath://name.dwl", "application/dw")).firstName
DataWeave

入力

{
  "firstName" : "Somebody",
  "lastName" : "Special"
}
JSON

出力

"Somebody"
CSV