Headless(ヘッドレス) CMSとしてのDrupal、Headlessとは

abechiyo 2019/07/08(月) - 14:25 に投稿

カバー画像

Headless(ヘッドレス)または、Decoupled(ディカップル) CMSと言う言葉をよく耳にするようになりました。理由は、昨今1社が保有するウェブサイトや、コンテンツを配信するデバイス増え続けているからです。

目次

Headless(ヘッドレス)CMSが求められる理由

Headless(ヘッドレス)CMSが求められる理由は、いくつかあります。

コンテンツ配信のため

昨今1社が保有するウェブサイトや、コンテンツを配信するデバイス増え続けているため、Headless(ヘッドレス)CMSが求められることが多くなってきました。
なぜ1社が保有するウェブサイトや、コンテンツを配信するデバイスが増えると、Headless(ヘッドレス)CMSが必要になるかと言うと、サイトや、デバイスごとにコンテンツを管理するシステムを導入すると、多くの運用コストがかかるからです。

これまで1サイトに1つのCMSが導入されてきましたが、下図は1つのコンテンツ管理システム(Drupal)が様々なデバイスにコンテンツを配信しているイメージです。

サイトや、デバイスが増え続けても、コンテンツを管理するシステムが1つのため、運用コストが膨らむのを抑えることができます。

バックエンドとフロントエンドの分離

Headless(ヘッドレス)CMSを導入することで、バックエンドと、フロントエンドを分離することができます。

フロントエンドは、Reactや、Vue.js、Riot.jsなどを使いフロントエンドを実装しますので、デザインの再構築(サイトリニューアル)による、バックエンドの作り変えが不要になります。運用者は常に同じシステムでサイトを更新することができ、リニューアル時に大きなコストとして発生するコンテンツの載せ替え費用を大きく削減することができます。

下記図の「Monolithic」が、これまでのCMSで、「Decoupled(分離)」が、Headless(ヘッドレス)CMSです。

decoupled(画像引用:A How-to Guide to Headless and Decoupled CMS

DrupalをHeadless化する方法

DrupalをHeadless化する方法はとても簡単です。

まずは下記2つのモジュールを有効にします。

これで準備が整いました。

記事やユーザー情報など単一のリソースを配信

  1. 管理画面から「環境設定 > REST」にアクセス
  2. 記事を配信する場合はContent横の「有効」ボタンをクリック
    REST有効
     
  3. 許可するデータ形式と、処理を選択し「設定保存」をクリック
    REST編集
    なお、メソッドは下記の通りです。
    GET : 情報取得
    POST : 記事投稿
    DELETE : 記事削除
    PATCH : 記事編集
     
  4. データリクエスト

    設定変更後下記のURLでアクセスすると、指定したリソースのJSONデータが出力されます。
    https://example.com/node/[node_id]?_format=json
     

記事一覧などのリスト

記事一覧などのリストはビューズ(Views)を使います。

  1. 管理画面の「サイト構築 > ビューズ」にアクセスし、「REST出力を提供する」にチェックを入れ、RESTのパスを指定します。
    RESTパス
     
  2. 「Fields」に出力したい項目、「フィルター」に抽出したい条件、「並び替え」にソートの順番を指定し、保存をクリックします。
    REST設定
     
  3. 設定した「/rest/v1/test」にアクセスすると、JSONデータが出力されます。

以上が、DrupalをHeadless化する方法でした。

さいごに

Headless化の必要性や、Headless化の方法を簡単にですがお伝えさせていただきました。
世界ではDrupalを使い、ウェブサイトをHeadless化する事例が増え続けています。

世界的にもトリフィックが多いサイトとして有名なWeather.comは、Drupalがバックエンドで月間100億ビジターのトラフィックを支えています。

現状のウェブサイトの表示と、RESTとしての配信を1つのCMSで構築できるのは大変魅力的です、REST配信をお考えの方はDrupalを一度検討してみると良いかもしれません。

タグ