※私はまだ FileMaker 16 に触れられていません1
FileMaker API (Web API) の使いどころ
FileMaker には API が用意されています。ここではそのうちいわゆる Web API に的を絞って話を進めることにします。以降、この Web API を単に API と記述します。
API を利用することで HTTP を用いてデータを取得することが可能になります。直接 Web ブラウザでリクエストをしてもブラウザ内に返り値が表示されるだけでそれを利用することは難しいですから、一般的には裏側(サーバサイド)でデータ取得のために使用することが考えられます。
それを踏まえて、API はどこでどのように使えば効果的なのでしょうか。
FileMaker Server にあるデータを外部に出す場合
FileMaker Server にあるデータベースからデータを取り出す場合に API を使うことが考えられます。特定の検索条件に一致するデータを CSV で書き出すような場合ですね。
……🤔
それ、FileMaker 単体でできませんか?
今年のアドベントカレンダーなどを見てみると、FileMaker のデータを API を用いずに柔軟にエクスポートする手法はいくつか存在するようです。そしてそれらは API に比べて以下のようなメリットを持っています。
- PHP やら Ruby やら XML やらの知識が不要
- 上記の環境を構築することも不要
- 処理速度が速い
- 開発コストも(相対的に)低い
FileMaker を Webブラウザ で操作したい
API を用いて最近流行りの Rails やら Laravel やら Vue やら React やらのフレームワークを使えばオシャレなウェブアプリが作れて、Webブラウザ 経由で FileMaker が操作できますね!
……🤔
それ、FileMaker WebDirect でできませんか?2
「REST API」を用いずに「カスタム Web 公開」の API を用いる
この項は少し趣旨が異なります。
FileMaker 16 では REST API がサポートされましたが、旧来の「カスタム Web 公開(PDF に直リンク注意)」も利用できます(=PHP や XML で API を扱う)。
……🤔
あえて、「カスタム Web 公開(=PHP や XML で API を扱う)」を使う必要はありますか?3
ではどこで API を使えば?
これまで挙げた内容を見ると、API を使わなくても代替手段がありそうで、しかもそちらの方がコストが低そうです。
では API はどのようなときに使うと良いのでしょうか。私は、2つの場合があると考えています。
- FileMaker 内のデータを用いて、一定以上の複雑なことをリアルタイムで行う場合
- FileMaker 内のデータを用いた処理の開発を継続的に行う場合
それぞれ見ていきます。
1. FileMaker 内のデータを用いて、一定以上の複雑なことをリアルタイムで行う場合
例えば、一分おきに売上データを取得し、それを加工して集計し、さらにその結果を Slack にポストするような場合です4。これを FileMaker 内で完結させるのは少々面倒でしょう。
2. FileMaker 内のデータを用いた処理の開発を継続的に行う場合
開発が継続的に行われる場合はリソースの「バージョン管理」が必須です。FileMaker のスクリプトは外に出すことが(今のところ)できませんので、継続的な開発が行われる場合は FileMaker から独立して利用できる API を用いて Git でリソースのバージョン管理を行う方が生産性が高くなるでしょう。
結論
ここまで書いてて何ですが、やはり状況に応じて使い分けることが最適ですね。どれが良い悪いではなく、必要なコスト(お金、時間、人数……)を考慮して最善な方法を選択するのが大切だと思います。そしてそのためには選択肢を多く持っておくということは大事なことでしょう5。
余談
この記事のようなネガティブな要因があるために、API についてはあまり盛り上がっていないのかなと思ってます。