これは Movable Type Advent Calendar 2016 1日目の記事です。
早いもので、今年も残すところ1ヶ月ですね。
さて、Movable Type でのサイト構築時、Data API を利用する機会が増えていると思います。
その際、レスポンスの確認はどうしていますか?
REST APIを使った開発のお供に。クライアントソフトウェアまとめ | NTT Communications Developer Portal:
https://goo.gl/JzZZoR
こちらでまとめられているブラウザの機能拡張やクライアントソフトを使っている方が多いかな?と思いつつ、今回は Paw を使った確認方法についてご紹介したいと思います。
Paw とは
Paw – The most advanced API tool for Mac:
https://paw.cloud/
Paw は API のテストなどに特化した、Mac 専用の HTTP クライアントソフトです。
UI が英語のみ、かつ、$49.99 のシェアウェアとなりますが、単に REST API のレスポンスを確認するだけでなく、例えば XML をパースして内容を確認したり、始点・終点を指定したフォームの POST 送信を行い循環バスの時刻表を確認したりと、勿体ない使い方だとは思いつつも、お世話になっています w
macOS(OS X)向けHTTPクライアント「Paw」が便利すぎた|ある蜜柑の上にアルミ缶。:
https://s8a.jp/paw-for-mac
こちらの記事で概要がまとめられていますので、興味のある方はあわせてご覧ください。
ブログ一覧の取得
はじめに、ブログ一覧を取得してみます。
- メソッドが
GET
になっていることを確認 - Data API のエンドポイントを入力
URL Params
タブを選択- URL Parameter に
sortBy
、Value にid
と入力 - リクエストを送信
エンドポイントが間違っていなければ、右側に JSON データが表示されます。
なお、エンドポイントを入力する際 http://mt.dev/mt/mt-data-api.cgi/v3/sites?sortBy=id
のようにパラメータを含めた状態でペーストすると URL Params に自動挿入されて便利です。
システムログの取得
次に、システムログを取得してみましょう。
- ウィンドウ左下の + アイコンで新しいリクエストを作成
- システムログのエンドポイント
/sites/0/logs
を入力 - 任意のパラメータをセット
- リクエストを送信
ブログ一覧とは異なり、レスポンスが 401 Authorization Required
と表示されてしまいました。
事前にユーザ認証を必要とするエンドポイントの場合、調整が必要です。
ユーザ認証
では、ユーザ認証用のリクエストを作成してみます。
- ウィンドウ左下の + アイコンで新しいリクエストを作成
- サイドバーのリクエスト名をダブルクリックして
ユーザ認証
に変更(※任意) - メソッドを
POST
に変更 - ユーザ認証のエンドポイント
/authentication
を入力 Body
タブを選択Form URL-Encoded
タブを選択- 認証に必要なパラメータ(※下記の表組みを参照)をセット
- リクエストを送信
認証に必要なパラメータについて
Parameter Key | Value |
---|---|
username | Movable Type のユーザー名 |
password | 上記ユーザーの Web サービスパスワード(※Data API v2 までは、ログインパスワード) |
remember | 1 |
clientId | 任意の文字列 |
これで Data API のユーザ認証ができるようになりました。
改めて、システムログの取得
ユーザ認証のレスポンスに含まれる accessToken を利用するよう、先に作成したシステムログ取得用のリクエストを調整してみます。
Headers
タブを選択- Header Name に
X-MT-Authorization
、Header Value にMTAuth accessToken=
と入力 - Header Value に入力した
=
の右側で右クリックして、コンテクストメニューからResponse > Response Parsed Body
を選択
- Prequest のプルダウンから
ユーザ認証
を選択(※この名称は、サイドバーのリクエスト名です) - Key Path に
accessToken
と入力 - Format のプルダウンから
JSON
を選択 - リクエストを送信
これでシステムログが取得できるようになっていると思います。
Data API でユーザ認証が必要なエンドポイントは、同様の設定でレスポンスを取得できますので、ぜひ試してみてください。
なお、時間が空いてユーザ認証の有効期限が切れてしまった場合は、一度 ユーザ認証
のリクエストを送信して accessToken を取得した後で、再度 システムログの取得
リクエストを送信する必要があります。
余談
Paw ではサイトごとのホスト情報などをまとめて設定しておき、必要に応じてプルダウンで切り替えられる機能がとても便利・・・なのですが、それはまた別の機会に。。。