Data API のレスポンスを Paw で取得する

これは Movable Type Advent Calendar 2016 1日目の記事です。
早いもので、今年も残すところ1ヶ月ですね。

さて、Movable Type でのサイト構築時、Data API を利用する機会が増えていると思います。
その際、レスポンスの確認はどうしていますか?

REST APIを使った開発のお供に。クライアントソフトウェアまとめ | NTT Communications Developer Portal:
https://goo.gl/JzZZoR

こちらでまとめられているブラウザの機能拡張やクライアントソフトを使っている方が多いかな?と思いつつ、今回は Paw を使った確認方法についてご紹介したいと思います。

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

こちらの記事で概要がまとめられていますので、興味のある方はあわせてご覧ください。

ブログ一覧の取得

はじめに、ブログ一覧を取得してみます。

Paw 画面サンプル:ブログ一覧の取得

  1. メソッドが GET になっていることを確認
  2. Data API のエンドポイントを入力
  3. URL Params タブを選択
  4. URL Parameter に sortBy 、Value に id と入力
  5. リクエストを送信

エンドポイントが間違っていなければ、右側に JSON データが表示されます。

なお、エンドポイントを入力する際 http://mt.dev/mt/mt-data-api.cgi/v3/sites?sortBy=id のようにパラメータを含めた状態でペーストすると URL Params に自動挿入されて便利です。

システムログの取得

次に、システムログを取得してみましょう。

Paw 画面サンプル:システムログの取得

  1. ウィンドウ左下の + アイコンで新しいリクエストを作成
  2. システムログのエンドポイント /sites/0/logs を入力
  3. 任意のパラメータをセット
  4. リクエストを送信

ブログ一覧とは異なり、レスポンスが 401 Authorization Required と表示されてしまいました。
事前にユーザ認証を必要とするエンドポイントの場合、調整が必要です。

ユーザ認証

では、ユーザ認証用のリクエストを作成してみます。

Paw 画面サンプル:ユーザ認証

  1. ウィンドウ左下の + アイコンで新しいリクエストを作成
  2. サイドバーのリクエスト名をダブルクリックして ユーザ認証 に変更(※任意)
  3. メソッドを POST に変更
  4. ユーザ認証のエンドポイント /authentication を入力
  5. Body タブを選択
  6. Form URL-Encoded タブを選択
  7. 認証に必要なパラメータ(※下記の表組みを参照)をセット
  8. リクエストを送信

認証に必要なパラメータについて

Parameter KeyValue
usernameMovable Type のユーザー名
password上記ユーザーの Web サービスパスワード(※Data API v2 までは、ログインパスワード)
remember1
clientId任意の文字列

これで Data API のユーザ認証ができるようになりました。

改めて、システムログの取得

ユーザ認証のレスポンスに含まれる accessToken を利用するよう、先に作成したシステムログ取得用のリクエストを調整してみます。

Paw 画面サンプル:システムログの取得

  1. Headers タブを選択
  2. Header Name に X-MT-Authorization 、Header Value に MTAuth accessToken= と入力
  3. Header Value に入力した = の右側で右クリックして、コンテクストメニューから Response > Response Parsed Body を選択

Paw 画面サンプル:システムログの取得

  1. Prequest のプルダウンから ユーザ認証 を選択(※この名称は、サイドバーのリクエスト名です)
  2. Key Path に accessToken と入力
  3. Format のプルダウンから JSON を選択
  4. リクエストを送信

これでシステムログが取得できるようになっていると思います。
Data API でユーザ認証が必要なエンドポイントは、同様の設定でレスポンスを取得できますので、ぜひ試してみてください。

なお、時間が空いてユーザ認証の有効期限が切れてしまった場合は、一度 ユーザ認証 のリクエストを送信して accessToken を取得した後で、再度 システムログの取得 リクエストを送信する必要があります。

余談

Paw ではサイトごとのホスト情報などをまとめて設定しておき、必要に応じてプルダウンで切り替えられる機能がとても便利・・・なのですが、それはまた別の機会に。。。