開発部の土岐です。
先日行われたDataSpider DevConn Hackathonで、「DataSpiderでPDFを作りたい!」という要望がありました。
DataSpiderでは「PDFアダプタ」はありませんが、いろいろな方法でPDFを作ることができます。
一例としては、過去の記事「DataSpiderでExcelをPDFに変換する」のようにVBスクリプトを活用してExcelからPDFに変換することができます。
▲DataSpiderでExcelをPDFに変換するスクリプト
が、これはWindowsでDataSpider Serverを稼働させている場合は可能なのですが、ハッカソンで使用しているDataSpider Cloudではこの方法は採れませんでした。
ということで今回は「ConvertApi」というファイル変換サービスのAPIを使ってPDF生成を実現してみました。
このサービスでは500ファイル変換までは試用版として無料で使え、その後は変換を行う回数によってプランが用意されているようです。参考リンク: http://www.convertapi.com/prices
DataSpiderを使ったこのAPIの使い方を今回は紹介します!
このようなことをDataSpiderで行うときは以下のようにやることが多いです。
- APIの仕様を確認して、エンドポイントや認証方法、パラメータなどの概要を把握する
- 確認した仕様をRESTアダプタの設定に反映する
- Mapperで受け渡すデータを設定する
ということで、この流れに沿って説明していきます!
まずはAPIの概要を把握する
「ConvertApi」のページを見ると、さまざまなファイル変換が用意されています。
今回はこの中で、「Image2Pdf」という画像→PDF変換サービスを使ってみようと思います。
(他にも「Excel2Pdf」「Word2Pdf」「PowerPoint2Pdf」などいろいろな変換サービスがあり、ほとんど同じ要領で使えるようです)
Image2Pdfのページを開くと、エンドポイントやパラメータのAPI情報が記述されており、API実行に必要な情報が分かります。
どうやら、登録すると発行される「ApiKey」とPDFに変換するファイルの入力元となる「File」のパラメータが必要で、あとは出力方法をさまざまに制御するためのパラメータが用意されているようです。
だいたいの概要が分かったので、これをDataSpiderのRESTアダプタで呼び出してみます。
RESTアダプタの設定
エンドポイントを画面で確認すると以下のようになっています。
「https://do.convertapi.com/Image2Pdf」にPOSTで投げてね!
ってことなので、まずRESTアダプタの[POST実行]処理を配置します。
接続先の「追加」をクリックして、グローバルリソースを作成します。
グローバルリソースにURLを作成し、
RESTアダプタの[パス]に「/Image2Pdf」を設定します。
これでエンドポイントの設定はOK!
必須設定として、
ApiKey | アカウントに発行される認証情報 |
File | 変換されるファイルのバイナリ |
が必要だとサイトに書いています。
ということで、クエリパラメータにApiKeyを設定。
Fileをどこに設定するの? というと、ここです。
「リクエスト設定」のデータ形式を「マルチパートフォーム」を選択して、名前に「File」を入れます。
種類は「ファイル」にします。
Mapperの設定
そしてこの前にMapperを配置してデータフローを引くと、
Mapperのスキーマはこのようになります。「path」にファイルパスを渡すと、RESTアダプタのリクエストで送信するファイルを指定できます。
このファイルパスはDataSpiderファイルシステムのパスを渡します。例えば「/data」にある「neko.jpg」というファイルを渡したい場合は、「/data/neko.jpg」を指定します。
ちなみにこのMapperでは「単一文字列定数ロジック」を使って定数を渡していますが、これをスクリプト変数など変数を指定することももちろん可能です。
例えばファイルトリガーやFTPトリガーなどを使って「ファイルが置かれたらPDF変換処理を実行する」などをやりたいときは、このpathにトリガー変数を渡せば実現することができるわけです。
ということで、リクエストの設定は完了。
最後にこのAPIのレスポンスをPDFとして保存するために、POST実行処理のレスポンス設定を以下のようにします。
ということでスクリプト完成&実行!
すると、
neko.pdfができました!
これをPDFビュ-アで開くと・・・
素敵な猫のPDFの完成です!
(ってすいません私が飼ってる猫の写真でした・・・)
ということで、RESTアダプタを使ってPDFを変換することができました。
APIの概要を掴み、そこからRESTアダプタの設定の関連がイメージできると、すぐにAPIを叩く処理を作ることができることがお分かりいただけたかと思います。
現在は単純な画像からPDFに変換するだけのPDFですが、前述したようにトリガーを組み合わせることで、「ファイルを置かれたときにPDFを変換する」という処理なども簡単に作ることができます。
また、ファイルの生成後「メールに添付して送信する」「共有ファイルサーバーにアップする」などの処理も組み合わせることで、実業務で使えるスクリプトに拡張することができると思います。
ぜひいろいろ試してみてください!