readUrl

DataWeave 2.2 は Mule 4.2 と互換性があり、Mule 4.2 にバンドルされています。 このバージョンの Mule は、拡張サポートが終了する 2023 年 5 月 2 日にその すべてのサポート​が終了しました。

このバージョンの Mule を使用する CloudHub には新しいアプリケーションをデプロイできなくなります。許可されるのはアプリケーションへのインプレース更新のみになります。

標準サポートが適用されている最新バージョンの Mule 4 にアップグレード​することをお勧めします。これにより、最新の修正とセキュリティ機能強化を備えたアプリケーションが実行されます。

readUrl(String, String, 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

(省略可能) リーダー設定プロパティを定義します。他の形式およびリーダー設定プロパティについては、 「DataWeave の出力形式とライタープロパティ」​を参照してください。

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

ソース

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

出力

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

次の例では、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)

入力

{
  "results": [
    {
      "profile": {
        "firstName": "john",
        "lastName": "doe",
        "email": "johndoe@demo.com"
      },
      "data": {
        "interests": [
          {
            "language": "English",
            "tags": [
              "digital-strategy:Digital Strategy",
              "innovation:Innovation"
            ],
            "contenttypes": []
          }
        ]
      }
    },
    {
      "profile": {
      "firstName": "jane",
        "lastName": "doe",
        "email": "janedoe@demo.com"
      },
      "data": {
        "interests": [
          {
            "language": "English",
            "tags": [
              "tax-reform:Tax Reform",
              "retail-health:Retail Health"
            ],
            "contenttypes": [
              "News",
              "Analysis",
              "Case studies",
              "Press releases"
            ]
          }
        ]
      }
    }
  ]
}

出力

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

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

ソース

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

入力

Max,the Mule,MuleSoft

出力

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

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

ソース

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

入力

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

出力

"Somebody"