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操作等を行った場合は
認証を解除するすべがありません。そのためセッション数制限に
すぐにひっかかってしまうためトークンを利用したほうがよさそうです。
今回も長くなってしまいました。
最後までお読みいただきありがとうございました。