Concrete CMS の REST API の使い方まとめ

菱川拓郎
菱川拓郎

今年リリースされた Concrete CMS 9.2.0 では、ついに REST API が正式にコアにバンドルされました。REST API は2019年にリリースされたバージョン 8.5 でベータ版として登場した機能です。当初は 9.0 での正式リリースを目指して開発が進んでいましたが、9.0 でのリリースは見送りとなりましたので、今回は待望の正式リリースとなりました。本記事では、Concrete CMS の REST API の基本的な使い方をまとめておきます(注:正式リリースを受けて本記事を執筆していますが、8.5までと基本的な使い方は変わっていませんのですでに使っているという方は読み飛ばしてください)。

REST API とは?

Concrete CMS は直感的にコンテンツの登録ができ、ウェブサイトとして表示することができます。Concrete CMS はカスタマイズも容易な設計になっていますので、プログラムからコンテンツの登録や表示を行うこともできます。しかし、独自のコードでそれらをセキュアに実現しメンテナンスし続けることは容易とは言えません。

REST API を使うことで、OAuth2 や Open ID connect といったスタンダードでセキュアな認証方式でデータの登録や取得を行うことができるようになります。これにより、外部サイトやJavaScriptアプリケーションからリアルタイムに Concrete CMS のコンテンツを取得したり、更新したりすることが容易にできるようになります。

REST API でできること

コンテンツ(ページ・エリア・ブロック)の追加・取得・更新・削除、ファイルマネージャーにアップロードされたファイル情報の取得・更新・削除、新しいファイルのアップロード、ユーザーやグループの追加・取得・更新・削除・パスワードの更新、エクスプレスデータベースのデータの追加・取得・更新・削除 などが行えます。

REST API の初期設定方法

まず[管理画面>システムと設定>API>API設定]画面にアクセスし、「API有効化」にチェックを入れて保存してください。

API設定ページのスクリーンショットAPIを有効化すると、同じ画面に「有効化された許可タイプ」が表示されます。OAuth 2 の許可タイプについては、公式サイトの OAuth Grant Types のページも参照してください。パスワード資格情報はセキュリティに問題があるため、デフォルトでは無効にされています。有効にしないようにしてください。

有効化後のAPI設定ページのスクリーンショット次に、同じ画面の「インテグレーション一覧」ボタンをクリックして「APIインテグレーション」ページを表示してください。API有効化直後はインテグレーションは登録されていませんので、「インテグレーションを追加」ボタンをクリックしてください。表示された画面で、わかりやすい名前とリダイレクトURLを入力してください。このインテグレーションに許可するスコープを制限することも可能です(できるだけ必要な範囲に制限しましょう)。次のスクリーンショットでは、例としてPostmanでの設定を行なっています。

APIインテグレーションを追加画面のスクリーンショット保存ボタンをクリックすると、クライアントキーとシークレットが生成されます。

クライアントシークレットとキーが生成された画面のスクリーンショット以上で準備は完了です。

REST API にアクセスする

それでは、引き続き Postman を使って REST API にアクセスしていきます(Postman 自体の使用方法の解説は割愛します)。新しいリクエストを作成し、先ほど作成したクライアントキーとシークレットを入力してください。また、Auth URL には https://お使いのドメイン/oauth/2.0/authorize 、Access Token URL には https://お使いのドメイン/oauth/2.0/token を設定してください。また、使いたい API のスコープを入力してください。とりあえず API の接続を試してみたい場合は、このあと説明するシステム情報の取得APIで利用する system:info:read を入力してください。

正しく入力できていれば、「Get New Access Token」ボタンをクリックすると次のような認可画面が表示されます。

Concrete CMS の認可画面のスクリーンショット認証ボタンをクリックすると、アクセストークンの取得完了です。セキュアに REST API にアクセスできる状態となりました。

それでは、Postman のURL欄に https://お使いのドメイン/ccm/api/1.0/system/info とタイプして送信してみましょう。問題なく設定できていれば、API 経由で取得したシステム情報のJSONデータを確認することができるはずです。

Postman のスクリーンショット

API ドキュメントを見る

Concrete CMS の REST API には様々なエンドポイントがありますが、エンドポイントの使い方は管理画面から直接 API ドキュメントを確認することができ、とても便利です。API ドキュメントを確認するには、インテグレーションの詳細画面から、「APIドキュメンテーションコンソールを見る」ボタンをクリックしてください。Swagger の画面が表示され、すべての API エンドポイントパラメーターやレスポンス例、スコープ等が確認できます。

Swagger で Concrete CMS API のドキュメントを表示したところのスクリーンショットまた、この API ドキュメントから直接 API を実行して確認することもできます。

Swagger でAPIをテスト実行したところのスクリーンショット

まとめ

ここまで、Concrete CMS の REST API の基本的な使い方を確認してきました。豊富な機能を持った API が用意されていて、またすぐに使いやすいようにドキュメントも自動生成されるのは、たいへん親切な設計だと思います。正式リリースとなったことで、案件でも安心して使いやすくなりましたので、外部サービスとの連携やWebアプリケーションの開発に、ぜひ使ってみてくださいね。

Concrete CMS の REST API では、独自のエンドポイントを追加するカスタマイズを行うことも可能です。また別の記事でご紹介できればと思います。