前回、Single Source of Truthを調べたら、もうやっていたという話を書きました。事実を一か所に持ち、各ページはそれを参照する。この作り方を、機能リファレンスで先にやっていた、という話です。

今回はその続きです。

検索したら、続きが気になった

数日後、「single source of truth コンテンツ設計」で検索してみました。AIによる概要に、前回の記事が引かれていました。

Google検索「single source of truth コンテンツ設計」のAIによる概要。前回の記事が引用元として表示されている

それはそれとして、概要の続きに目が止まりました。実装のポイントとして、Markdown、CSV、JSONといった言葉が並んでいます。他の解説記事も読むと、事実データをAPIで配る、という話がよく出てきます。

SSOTにはAPIが要るらしい。うちには、APIと呼べるものがあるだろうか。ないなら、作るのはどれくらいの仕事なのか。やってみることにしました。

作ってみた

対象は機能リファレンスにしました。管理画面1画面につき1ページ、事実だけを書いた目録です。数えたら131本になっていました。以前の記事で127本と書いたものに、その後の新機能の分が足されています。

writeWiredでは、ページはテンプレートが作ります。機能リファレンスの一覧をJSONで返すテンプレートを、1枚作りました。一覧ページと同じ仕組みです。HTMLを組み立てる代わりに、JSONを組み立てる。違いはそれだけです。

ブラウザで開くと、131件が返ってきました。

ブラウザに表示された機能リファレンスのJSON。countは131、itemsにタイトルとURLが並ぶ

ここまでで、1時間かかっていません。

使ってみた

JSONを返すだけでもAPIとは呼べますが、せっかくなので使う側も作ってみました。

writeWiredとは関係のない、素のHTMLを1枚書きました。中身は数行です。さっきのJSONを読み込んで、タイトルの一覧を並べるだけ。

素のHTMLに表示された機能リファレンス131件の一覧

機能リファレンス131件。CMSの外の紙切れ1枚に、一覧が出ました。

え?あれ?

作り終えて、思いました。え?あれ?これで終わり?

APIを作った、と言えるような出来事は、起きませんでした。テンプレートが1枚増えただけです。50枚のテンプレートでサイトを作るなら、その51枚目がJSONを出す。それだけの話でした。

SSOTの解説に戻ります。事実を一か所に持つ。各ページは参照する。外へはAPIで配る。——台帳を一つ持って、参照で配る。私はこの仕事を、ずっとマスタ管理と呼んできました。

というか、これ、マスタ管理の話ですよね。

新しい言葉で呼ばれると、新しい仕事に見えます。作ってみると、知っている仕事でした。