Help us understand the problem. What is going on with this article?

ファイルリストをHTTP GETメソッドで取得する

More than 3 years have passed since last update.

はじめに

DataSpiderサーバをテンポラリとして利用する方法のもうひとつの機能である、ファイルリストの取得を実装してみます。
処理としては非常に簡単で、ファイル名一覧取得コンポーネントを使って一覧を取得したあと、JSONフォーマットに置き換えるだけ。

事前準備として取得したいjsonフォーマットを決めてDataSpider上に保存しておきます。
今回はこんな形式にしました。

[
  {
    "file_name": "",
    "file_size":"",
    "updated":""
  }
]

スクリプトの実装

  1. 完成図
    image
  2. ツールパレットネットワークRESTGET実行をキャンバスにドラッグ&ドロップします。
    image
    レスポンス設定タブのデータ形式をJSONにしてJSONファイルを指定して出力スキーマを設定...から、事前に準備しておいたJSONファイルを指定して設定完了です。
  3. ツールパレットファイルファイル操作ファイル名一覧取得をキャンバスにドラッグ&ドロップします。
    image
    ファイルの保存先を指定して設定は完了です。
  4. ツールパレット変換基本マッピングをキャンバスにドラッグ&ドロップします。
    1. 出力データlist xmlを右クリックしてスキーマを読み込むを選択します。
      image
    2. スキーマの読み込みでコンポーネントから選択を選択し、execute_http_get(RESTアダプタ)を選択します。
      image
    3. まずはファイルの取得条件を設定します。(青い線の部分です)
      image
      - ツールパレット繰り返し条件指定条件による抽出をキャンバスにドラッグ&ドロップします。
      - ツールパレット文字列基本単一行文字列定数をキャンバスにドラッグ&ドロップし、fileを設定します。
      - ツールパレット条件文字列同じをキャンバスにドラッグ&ドロップし、図のように線をつないでいきます。
      ファイル名一覧取得コンポーネントでは指定するディレクトリ配下のディレクトリ名、ファイル名のすべてを取得しますので、この条件式で、ファイル名だけ取得することができるようになります。
    4. 次にJSONフォーマットを指定します。(赤い線の部分です)
      - ツールパレット文字列基本単一行文字列定数をキャンバスにふたつドラッグ&ドロップし、取得したいJSONフォーマットの通りarrayobjectを設定し、type属性につなぎます。
    5. 最後に必要なカラム同士を結んでマッピング設定は完了です。
  5. あとは完成図の通り、Startからendまで線を結んで、プロジェクトをサービスに登録したらスクリプトの作成は完了です。
    image
  6. メニュー→マイトリガーから新しいHTTPトリガーを作成します。
    image
    - ここでは実行パスを/filelistとしました。
    レスポンス設定のContent-Typeをapplication/jsonに設定します。
  7. 実行パスの設定が終わったら次へ進んで登録したサービスと紐付けます。
    image
    あとは保存したら終了です。

実行

生成されたURLに対してGETメソッドでファイルを送ってみます。
ここではDHCというChromeのプラグインを利用しています。
image
正しく取得できているようです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした