コンテンツモデル — 種別・投稿・カテゴリ・固定コンテンツ・FAQ の関係
管理画面で編集するコンテンツが、公開APIやSDKのどの名前で取得できるのかをまとめます。最初に全体像を押さえておくと、APIリファレンスやほかのガイドが読みやすくなります。
1. 全体像
コンテンツはすべてサイト単位で管理されます。投稿は種別ごとに分かれ、種別のスラッグがAPIのパス({postType})になります。FAQ・固定コンテンツ・フォームは種別に属しません。
コンテンツの関係
テナント(契約の単位。APIキーを発行する)
└─ サイト(公開する Web サイトの単位。サイトコードで識別)
├─ 種別(投稿の分類。例:お知らせ news/実績 works)
│ ├─ カテゴリ(種別ごと。投稿はこの中から1つ選ぶ)
│ └─ 投稿(スラッグで識別。タグを複数付けられる)
├─ FAQ(種別には属さない)
│ └─ FAQカテゴリ(サイトごと。FAQはこの中から1つ選ぶ)
├─ 固定コンテンツ(キーで識別。会社概要などの単体ページ)
└─ フォーム(キーで識別。定義の取得と送信) 2. APIキーとサイトコード
公開APIは、どのテナントの、どのサイトのコンテンツかを次の2つのヘッダーで判定します。
- APIキー(
X-API-KEY):テナント単位。管理画面のテナント設定で管理者が発行します。 - サイトコード(
X-SITE-CODE):サイト単位。管理画面のサイト設定で確認できます(変更はできません)。
src/lib/cms.ts
import { ShareDanCmsClient } from '@sharedan/cms-sdk';
export const cms = new ShareDanCmsClient({
baseUrl: 'https://api.cms.sharedan.co.jp',
apiKey: import.meta.env.CMS_API_KEY, // X-API-KEY(テナント設定で発行)
siteCode: import.meta.env.CMS_SITE_CODE, // X-SITE-CODE(サイト設定で確認)
}); 3. 管理画面・API・SDK の用語対応
管理画面の表記公開API / SDK
サイトコード X-SITE-CODE ヘッダー / siteCode(クライアントの設定)
APIキー X-API-KEY ヘッダー / apiKey(クライアントの設定)
種別 パスの {postType}(種別のスラッグ) / postTypes.list()
投稿 GET /posts/{postType}・/posts/{postType}/{slug} / posts.list()・posts.get()
カテゴリ(投稿) GET /posts/{postType}/categories・一覧の ?category= / posts.categories()
タグ 投稿の tags(タグ名の配列) / PostSummary.tags
FAQ GET /faqs / faqs.list()
FAQカテゴリ GET /faqs/categories / faqs.categories()
固定コンテンツ GET /contents/{key} / contents.get()
フォーム GET /forms/{key}・POST /forms/{key}/submissions / forms.get()・forms.submit()
4. 関係のルール
- 種別:サイトごとに作成します。サイト作成時に既定の種別「お知らせ」(スラッグ
news)が1つ用意されます。作成できる数はプランによって異なります。 - 投稿:1つの種別に属し、カテゴリはその種別のものから1つ選びます。タグは複数付けられます(タグはサイト内で共有)。スラッグは同じサイト・同じ種別の中で一意です。
- カテゴリ:投稿用は種別ごと、FAQ用は種別に属さずサイトごとに作成します。それぞれに既定のカテゴリがあり、カテゴリを削除すると、そのカテゴリの投稿・FAQは既定のカテゴリへ移ります。
- 固定コンテンツ・フォーム:サイト内で一意のキーで取得します。固定コンテンツのキーは作成後に変更できません。フォームのキーは変更できますが、変更した場合は公開サイト側の呼び出しも合わせて変える必要があります。
補足:サイトごとに、投稿・FAQ・固定コンテンツ・フォームなどのうち利用するものが設定されています。利用しない設定のコンテンツをAPIで取得しようとすると、404 が返ります。
FEEDBACK
このページはお役に立ちましたか?
改善要望・不具合・ドキュメントの分かりにくい点など、お気軽にお寄せください。いただいた内容は今後の改善に役立てます。
フィードバックを送信しました
お寄せいただきありがとうございます。今後の改善に役立てます。