Drupal は「API 優先」であって「API のみ」ではない

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【3/22開催】テックブログを書こう!アウトプットのススメ
1年で100本ブログを出した新米エンジニアがPV数が伸びなくてもTech Blogを書き続ける理由とは?
https://tech-lab.connpass.com/event/312805/

【4/18開催】VSCode Dev Containersで楽々開発環境構築祭り〜Python/Reactなどなど〜
Visual Studio Codeの拡張機能であるDev Containersを使ってReactとかPythonとかSpring Bootとかの開発環境をラクチンで構築する方法を紹介するイベントです。
https://tech-lab.connpass.com/event/311864/

Drupal の創始者ドリース バイテルト氏のブログを日本語で紹介するコーナーです。

「ヘッドレス CMS」として知られる「コンテンツ-as-a-Service」ソリューションを選択する開発者が増えている。それは最小限の編集インターフェイスを備えたコンテンツ置き場(リポジトリー)であり、増えていく一連のアプリケーションが使いこなすためのコンテンツ API が備わっている。ヘッドレス CMS には、いくつか共通した特徴がある。エンドユーザーにとってのフロントエンドがなく、表示およびレイアウトのための編集ツールがほとんど、または全くない。そのため、見せ方に関する事柄は、ほぼすべて、フロントエンド エンジニアに任せることになる。ヘッドレス CMS の人気が出たのは以下の理由による。

  • フロントエンドとバックエンドそれぞれのチームが独立して作業できるよう、構造に関する事柄と提示(表示)に関する事柄を分けたいという願望があるため。
  • コンテンツを数々のチャンネルに配信できるソリューションを編集者とマーケッターが求めているため。そのチャンネルには、Web サイト、バックエンド システム、シングルページ アプリケーション、ネイティブ アプリケーション、さらには、ウェアラブル機器、対話型インターフェイス、IoT デバイスといった、これから登場してくるデバイスまでもが含まれ、その数は増え続けている。

開発者の間では、こうしたトレンドがあるので、ヘッドレス CMS は従来型 CMS の市場に挑みかかっている(従来型にとって脅威である)のではないかと、もっともな問いを発する人が多い。僕自身は、ヘッドレス CMS というものが今日あるところに CMS 業界全般が向かっているという確信は持てていない。実際のところ、微妙な意味合いをもたせた見方が必要だと考えている。

このブログ記事では、登場してくるヘッドレスの競合たちを引き離す決定的な長所が Drupal にある理由を説明したいと思う。すなわち、Drupal は、自分のコンテンツの見せ方をコントロールする必要のある編集者にとって抜群の CMS であり得ること、そして、単一のパッケージに収まる大規模なコンテンツ エコシステムを増築していく開発者にとっては豪華なヘッドレス CMS になれることだ。

Drupal が長年、その本来の役目として Web サイトを動かし続けてきたなかで、コンテンツの出力先も増えてきた。他のバックエンド システム、シングルページ アプリケーション、ネイティブ アプリケーション、対話型インターフェイスさえもある。すべて同時に(並行して)増えたのだ。

ヘッドレス CMS は編集者が取り残される

Coupled Drupal vs, Headless CMS
従来の Drupal Web サイトと、コンテンツを受信するいくつものフロントエンドを備えたヘッドレス CMS の違い

 

コンテンツ編集者とマーケッターに限っていえば、Drupal や WordPress など従来型の CMS はヘッドレス CMS に入れ替わってしまうだろうという人もいる。僕はそうなるかどうかわからない。

ヘッドレス CMS が太刀打ちできないところは、インコンテクスト(in-context)管理、そしてコンテンツのインプレース(in-place)編集の分野だ。それとは対照的に、僕たちが「裏返しoutside-in」と呼んでいる作業は、編集者がコンテンツとページ構造をライブプレビューのある1つのインターフェイス内で管理できるようになることを目指している。エンドユーザー体験とは全く別のインターフェイスではないのだ。このパラダイム(操作原理)の例としては、ブロックを直接、リージョンにドラッグする、メニュー項目の順序をドラッグで変える、そしてその変更がどちらも目の前ですぐに適用される、といったことが挙げられる。

ヘッドレス CMS には原理上、コンテンツの提供先であるフロントエンドに統合されたフル装備の編集体験(編集インターフェイス)がない。ひとつひとつのフロントエンドに結びつけたコンテンツ編集インターフェイスを開けておかないかぎり、インコンテクスト管理とインプレース編集は不可能だ。言い換えるなら、フロントエンドに編集体験を提供するには、そのフロントエンドには、そのコンテンツ編集インターフェイスがわかっていなくてはならない。よって、カップリングは必要だということになる。

表示とレイアウトの操作は、マーケッターが成功するかどうかを決めるカギとなる、もうひとつの領域だ。Drupal の主要な機能のひとつに、レイアウト構造のなかでコンテンツが表示される場所をコントロールできるということがある。ヘッドレス CMS には表示とレイアウト設定に関する独自の方針というものがない。しかし、インプレース編集とインコンテクスト管理と同様、それを実現する編集ツールを役立たせるには、エンド ユーザーが接するフロントエンドに統合する必要がある。

それに加えて、編集者とマーケッターには、コンテンツを公開したときの見え方がとりわけ気になる。特に、非公開コンテンツであってもエンド ツー エンドで容易なプレビュー システムにアクセスできる、ということが数多くの編集者のワークフローにとっては不可欠だ。開発者は、ヘッドレス CMS のパラダイムにおいてシームレスなプレビュー機能を実現するには、かなり奮闘しなくてはならない。すなわち、新しい API エンドポイントなりステージング環境なりを立てる、新しいパスに対するリクエストを出す別バージョンの自前アプリケーションを展開する、などといったことだ。そうしたことを鑑みて、開発者の手を煩わせなくても済むシームレスなプレビュー機能は、まだまだ必要だと僕は考えている。

インプレース編集、インコンテクスト管理、レイアウト操作、シームレスでありながらも信頼できるプレビューといった機能は、コンテンツ作者とマーケッターにとって最適な編集体験を構築する基本的な部品だ。これらの問題点は、特にアプリケーションが開発者側を対象にしていて編集用のインタラクションがほとんど不要な場合など、ユース ケースによっては全く問題なく対処できる。しかし、コンテンツ編集者にしてみれば、ヘッドレス CMS は期待してきたようなツールキットをそもそも提供してくれない。これが、ヘッドレス CMS は及ばず、Drupal が秀でたところだ。

Drupal は編集者とアプリケーション開発者の両方を支援する

Drupal vs. Headless CMS
一体型でありながらヘッドレスにもなる Drupal Web サイトと、いくつものフロントエンドがコンテンツを受信するヘッドレス CMS との違い

こうしたことは全部、ヘッドレスが大事ではないと言っているわけではない。ヘッドレスは重要だ。しかし、ヘッドレスと従来型、両方のアプローチをサポートしているということが Drupal のいちばん大きな長所のひとつだということだ。結局のところ、コンテンツ マネージメント システムは、編集者を対象にした Web サイトを越えて、シングルページのアプリケーション、ネイティブ アプリケーション、さらには、ウェアラブル端末、対話型インターフェイス、IoT 機器など、これから現れてくるデバイスにさえもコンテンツを配信する必要があるのだから。

幸い、継続中の「API 優先」イニシアチブは、コンテンツ サービスとして Drupal を使うのがずっと容易に、かつ、開発者にとっていっそう最適化されたものになるよう、既存および新規の Web サービスに関する作業を進めるべく積極的に取り組んでいる。JSON API や GraphQL のようなすばらしい開発者体験(開発環境)を提供するなり、Waterwheel エコシステムのようにヘッドレス アプリケーション開発を加速させるようなツール群をそろえるなりして、これらのアプリケーションの開発者がより生産的になれるようにと、僕たちは努力している。

僕から見れば、この議論における主な収穫は「Drupal は編集者にとっても開発者にとってもすばらしい」ということだ。ただ、注意すべき点がある。編集者または(コンテンツの)構成編集者の体験(操作環境)を特に重要視する必要のある Web 体験には、一体型 Drupal のフロントエンドを使うべきだ。そうすれば、開発者を巻き込むことなしにフロントエンドの編集、操作ができる。(逆に)編集者を巻き込む必要がない Web 体験にも Drupal は理想的だ。API 優先のアプローチをとることで、Drupal は対応を明確にできない(Web ベースでない)他のデジタル体験にも備えている。これによって、どちらのオプションにも道が開かれているわけだ。

サイトには Drupal、アプリにはヘッドレス Drupal

Drupal site and Content service
Drupal 内および Drupal 自体のフロントエンドとしても、他のフロントエンドへのコンテンツ サービスとしても利用される Drupal の理念的なアーキテクチャー

今の時代、すべてのチャンネルが単独ソース(SSOT: Single Source of Truthのコンテンツによって供給されるようにすることが重要だ。ただ、このアプローチにはどんなアーキテクチャーが最適なのか?これを読みながら、僕が去年、書いた「Drupal をどう分離すべきか」というブログ記事の「デジャヴ体験」を感じた読者もいることだろう。投稿して 1 年近くになるが、あの記事は今でも確かなアドバイスになる。

最終的に僕は、一体型でありながら分離型でもある Drupal アーキテクチャーを推奨する。要は、Drupal は編集者とアプリケーション開発者の両方に向けた位置づけにおいて秀でているということだ。どちらの役割にとってもすばらしいのだから。言い換えるなら、コンテンツのリポジトリーは(置き場所であるだけでなく)世間に向けた Web サイトでもあるべきだということになる。それは切れ目なくつながっていて、編集機能もフルに備えたサイトだ。同時に、そのサイトは一連のアプリケーションの中心であるべきだ。それらのアプリケーションは、編集ツールを必要としないが、開発者の求める開発体験を与えてくれるものだ。分離型アプリケーションを加えながらも Drupal を一体型に保つというのは「制限」ではない。「拡張」だ。

結論

今日の目標は Drupal を「API のみ」ではなく「API 優先」にすることだ。(だから)「API なし」の CMS のような一体型アプローチだけ、あるいは Contentful や他のヘッドレス CMS のような「API のみ」のアプローチだけに制限することはない。僕にとってはそれが、この議論から導かれるいちばん大事な結論だ。Drupal は可能性の領域全体をサポートする。だから、編集者・マーケッターのための最適化と、開発者のための最適化の間でうまく歩み寄ることができるし、ニーズが変わったら、その領域内のどこかに(妥協点を)移せばいい。

それは一体型とヘッドレス、双方のアプローチで生じる両極端の状況をすっぽりとカバーする領域だ。僕たちが何年もやってきたように、Drupal は単独の Web サイトを駆動するのに使える。同時に、従来型の Web サイトを越えて、多数のアプリケーションを動かすために Drupal を使うことも可能だ。こうして、Drupal は、開発者と編集者の要求に応じて、この領域のなかで(妥当なポイントを)上げたり下げたり調節することができる。

別の言い方をすれば、Drupal は API 優先であって API のみではない。だから、開発者のために編集者とマーケッターがほったらかしにされるようなことはない。誰が来ても、その人の求めるものを与えてくれる。そして、そのすべてが1つのパッケージに収められている、ということだ。

このブログ記事に貢献してくれたプレストン ソーPreston So、そして、この執筆中に意見を聞かせてくれたウィム リーアスWim Leers、テッド ボウマンTed Bowman、クリス ハンパーChris Hamper、マット グリルMatt Grillに謝意を表したい。

 

drupalDrupal の詳細については下記をご覧ください!
https://sios.jp/products/it/oss-drupal.html

本ブログは、株式会社アウトソーシングテクノロジーにて翻訳しています。

▼株式会社アウトソーシングテクノロジーのブログページはこちらから!

https://www.webgogo.jp/blog

アバター画像
プロフェッショナルサービスチームの中の人。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる