前回、Single Source of Truthを調べたら、もうやっていたという話を書きました。事実を一か所に持ち、各ページはそれを参照する。この作り方を、機能リファレンスで先にやっていた、という話です。
今回はその続きです。
検索したら、続きが気になった
数日後、「single source of truth コンテンツ設計」で検索してみました。AIによる概要に、前回の記事が引かれていました。

それはそれとして、概要の続きに目が止まりました。実装のポイントとして、Markdown、CSV、JSONといった言葉が並んでいます。他の解説記事も読むと、事実データをAPIで配る、という話がよく出てきます。
SSOTにはAPIが要るらしい。うちには、APIと呼べるものがあるだろうか。ないなら、作るのはどれくらいの仕事なのか。やってみることにしました。
作ってみた
対象は機能リファレンスにしました。管理画面1画面につき1ページ、事実だけを書いた目録です。数えたら131本になっていました。以前の記事で127本と書いたものに、その後の新機能の分が足されています。
writeWiredでは、ページはテンプレートが作ります。機能リファレンスの一覧をJSONで返すテンプレートを、1枚作りました。一覧ページと同じ仕組みです。HTMLを組み立てる代わりに、JSONを組み立てる。違いはそれだけです。
ブラウザで開くと、131件が返ってきました。

ここまでで、1時間かかっていません。
使ってみた
JSONを返すだけでもAPIとは呼べますが、せっかくなので使う側も作ってみました。
writeWiredとは関係のない、素のHTMLを1枚書きました。中身は数行です。さっきのJSONを読み込んで、タイトルの一覧を並べるだけ。

機能リファレンス131件。CMSの外の紙切れ1枚に、一覧が出ました。
え?あれ?
作り終えて、思いました。え?あれ?これで終わり?
APIを作った、と言えるような出来事は、起きませんでした。テンプレートが1枚増えただけです。50枚のテンプレートでサイトを作るなら、その51枚目がJSONを出す。それだけの話でした。
SSOTの解説に戻ります。事実を一か所に持つ。各ページは参照する。外へはAPIで配る。——台帳を一つ持って、参照で配る。私はこの仕事を、ずっとマスタ管理と呼んできました。
というか、これ、マスタ管理の話ですよね。
新しい言葉で呼ばれると、新しい仕事に見えます。作ってみると、知っている仕事でした。