FileMaker 18 AdminAPI 【Databases編】

2019年06月25日 10:34 AM

FileMaker 18


前回(認証編)に続きDatabase周りの操作をおこなっていきたいと思います。
まずはホストされているデータベースの一覧を取得していきましょう。

 

◇データベースのリストの取得
必須項目 : Authorization
メソッド : GET
API Path : /databases

認証の時と必須項目自体は変わりませんが
方式が変わります。

リファレンスを見ると2つ方法がのっています。

・Basic <base64-encoded string>

・Bearer <JSON Web Token>

英語で小難しいことが書いていますが、特に考えず
下の Bearer <JSON Web Token> を利用します。

実際に設定を行うと以下のようになります。

メソッド : POST
URL   : {{serverurl}}/fmi/admin/api/v2/databases
Authrization
TYPE : Bearer Token
Token: {{token}}

前回の復習になりますが、{{token}}は環境変数に
設定されているtokenを参照して値を代入してくれます。

「Send」ボタンをクリックして実行してみましょう。

この時エラーになるようであれば、前回の認証でおこなった
APIを実行し、トークンを取得してから再度実行してみてください。

実行結果は以下の通りです。

いろいろと値が返ってきますが、ひとまず以下がポイントです。

“id”: “1”
“filename”: “FMServer_Sample.fmp12”
“status”: “NORMAL”

ファイル「FMServer_Sample.fmp12」がホストされ
内部的にidが「1」と振られており
現在ステータスが「NORMAL」で開かれていることがわかります。

 

◇全データベースの公開・停止
現在公開中ですので、停止の処理を行っていきます。

必須項目 : Authorization
Content-Type
status
メソッド : PATCH
API Path : /databases

リファレンスを確認すると必須項目が増えています。
新たにHeaderに「Content-Type」、BODYに「status」が
必要です。

では設定してみましょう。

メソッド : PATCH
URL   : {{serverurl}}/fmi/admin/api/v2/databases
Authrization
TYPE : Bearer Token
Token: {{token}}

ここまでは先ほどのデータベースの一覧の取得と同じです。

追加の項目を設定します。

Headersタブを選択し

KEY : Content-Type
Value : application/json

とします。

Bodyタブを開き、rawを選択、下記画面に以下を入力します。

{“status”: “CLOSED”}

とします。

実行すると「”statsus”: “CLOSED”」が返ってきます。

念のためデータベースの一覧を再度表示してみると
確かに現在のStatusがCLOSEDになっていることがわかります。

このステータスを変更することによりDBの状態を変更することができます。
AdminConsole上の動作では以下のようになります。

OPENED :開く
PAUSED :一時停止
RESUMED :再開
CLOSED :閉じる

 

◇個別データベースの公開・停止
最後に個別のDBの操作を見ていきましょう。
基本的な項目は先ほどと同じですがURLにデータベースIDを
追加する必要があります。
今回はデータベースID「1」の「FMServer_Sample.fmp12」を
「開く」ことをおこないます。

メソッド : PATCH
URL   : {{serverurl}}/fmi/admin/api/v2/databases/1
Authrization
TYPE : Bearer Token
Token: {{token}}
Header : Content-Type: application/json
Body : {“status”: “OPENED”}

実行すると結果は以下の通りです。

リファレンスをみると暗号化パスワードを指定できたりと
オプションがいくつかありますので、ぜひ試してみてください。

 

◇蛇足
今回の内容はすべてTokenを利用して操作をおこないましたが
Tokenを取得せず認証時に利用したID/PassのBasic認証でも
操作は可能です。
・・・が、Basicで認証をおこないDB操作等を行った場合は
認証を解除するすべがありません。そのためセッション数制限に
すぐにひっかかってしまうためトークンを利用したほうがよさそうです。

 

今回も長くなってしまいました。

最後までお読みいただきありがとうございました。