はじめに
Movable Type Data API とは?
Movable Type 6 から搭載されている Web API です。さまざまなプログラム言語から REST/JSON方式で Movable Type にアクセスし、データの取得や更新ができます。
Data API を使えば、CMSで管理しているデータを、サイト上で自由に呼び出したり、また、独自の管理画面やアプリの開発や、他のプラットフォームとの連携などを容易に行うことができます。
Movable Type 7 r.54xx で提供している API のバージョンは v5 です。
利用方法
Movable Type Data API は、Movable Type 7 がインストールされている環境であれば、すぐにご利用になれます。
各バージョンごとのエンドポイントについて
Movable Type Data API は、API の各バージョン毎に定められている エンドポイントと呼ばれる URI に対して POST, GET, PUT, DELETE の HTTP(s) 要求を送ることで動作します。
Data API のバージョンごとに、利用できるエンドポイントが違う場合がありますので、各エンドポイントを利用する際には、バージョンごとに定められているベースの URI として、リクエストを行ってください。
例: Data API v5を利用して、記事の一覧を取得する
http://example.com/mt-data-api.cgi/v5/sites/1/entries
Movable Type のバージョン | Data API のバージョン | エンドポイント |
---|---|---|
Movable Type 7 r.53xx | v4.0 | http(s)://path/to/mt-data-api.cgi/v4/ |
Movable Type 7 r.54xx | v5.0 | http(s)://path/to/mt-data-api.cgi/v5/ |
認証方式
Data API では、Movable Type のユーザー管理機能を利用して認証を行います。また、ユーザーの権限をもとに、各リクエストに対しての認可を行います。これにより、Data API と Movable Type でユーザーを一元管理することができます。
認証が必要なエンドポイントへリクエストを行なう場合、リクエスト毎にアクセストークンを付与する必要があります。詳しくはクイック スタートガイドをご覧ください。
Data API をより安全に利用するために
Data API のアクセスを禁止する
Data API からのアクセスをサイト単位、あるいはシステム全体で禁止することができす。詳しい設定方法は、以下のドキュメントをご覧ください。
クロスオリジン制約を見直す
Web ブラウザ の JavaScript を利用して外部のサイトから Data API にアクセスした場合、Web ブラウザのセキュリティ上の仕様でデフォルトではデータを取得することはできませんが、DataAPICORSAllowOrigin にデータの取得を許可するアクセス元を指定するとことで、外部のサイトからもアクセスが可能になります。このとき、適切なオリジンを設定することで、不要なサイトからのアクセスを許可しないように出来ます。詳しくは、DataAPICORSAllowOrigin 環境変数のドキュメントをご覧ください。
取得できる情報を制限する
Data APIを利用すると、Movable Type で管理されているサイトや記事の情報が取得できます(一部の情報はユーザー認証が必要です)。サイトによっては、公開されたくない情報も API 経由で取得できます。
例えば、サイトの名称や URL などは公開しているけれども、サイトの ID は API で取得させたくない。というような場合があるかもしれません。
このような場合は、DisableResourceField 環境変数を 適切に設定することで、API 経由で取得できる情報に制限を設けることが出来ます。
例えば、ブログの ID を制限する場合は、以下の内容を mt-config.cgi に記述します。
DisableResourceField blog=id