コンテンツにスキップ

モデルとフィールド

モデルは、コンテンツのデータ構造を定義する骨組みです。1つ以上のフィールドを組み合わせて、コンテンツに入力できる項目とその形式を決めます。

コレクションの中に複数のモデルを作成し、モデルの定義に従ってコンテンツを入力していきます。

モデル

モデルは、コレクションの中で「どのような構造のコンテンツを扱うか」を表します。

1つのコレクションの中には、用途の異なる複数のモデルを作成します。たとえば、あるブランドのコンテンツをまとめたコレクションには、次のようなモデルを作成します。

  • ブログ記事: タイトル、本文、サムネイル、著者などを定義
  • お知らせ: タイトル、本文などを定義
  • 商品情報: 商品名、価格、画像、説明などを定義

フィールド

フィールドは、コンテンツの入力項目です。フィールドにはテキストや日付、画像などの種類(フィールドタイプ)があり、組み合わせることでコンテンツのデータ構造を定義します。

フィールドを追加する際は、次の項目を指定します。

  • フィールドタイプ: 入力する値の種類
  • フィールド名: 管理画面に表示される名称
  • フィールドID: APIのレスポンスでプロパティ名として使われる識別子
  • フィールドの説明: 入力者向けの補足説明(任意)
  • デフォルト値: 初期状態で入力する値(任意)

入力を必須にしたいフィールドには、必須の設定を有効にします。このほか、フィールドタイプごとに固有の設定(文字数の上限、複数選択の可否など)があります。

フィールドタイプ

利用できるフィールドタイプは次のとおりです。各タイプの説明、設定できる項目、APIで取得したときの値の例を示します。サンプルは、コンテンツのフィールドID(uid)をキーとした値の部分を抜き出したものです。

1. テキスト

入力インターフェース

テキストフィールド

サンプルデータ

{
"title": "サンプルテキスト"
}

入力タイプ

入力タイプ
テキスト(1行)入力インターフェースが、1行のテキストとなります
テキストエリア(複数行)入力インターフェースが、複数行のテキストエリアとなります

オプション

概要
必須フィールド有効化時に、入力がない場合はコンテンツの公開(保存して公開)ができなくなります
このフィールドをタイトルとして使う管理画面上でコンテンツのタイトルとして扱うフィールドに対して付与します。入力がない場合はコンテンツを保存できなくなります
一意の文字列(ユニーク)テキスト入力時に他コンテンツの同フィールドに重複する値が設定されている場合に、コンテンツの公開(保存して公開)ができなくなります
最大文字数設定した文字数を超える文字列を入力した際に、コンテンツの公開(保存して公開)ができなくなります
最小文字数設定した文字数未満の文字列を入力した際に、コンテンツの公開(保存して公開)ができなくなります

2. 数字

入力インターフェース

数字フィールド

サンプルデータ

{
"price": 2000
}

オプション

概要
最大値設定した数値を超える数値を入力した際に、コンテンツの公開(保存して公開)ができなくなります
最小値設定した数値未満の数値を入力した際に、コンテンツの公開(保存して公開)ができなくなります

3. 画像

入力インターフェース

画像フィールド

メディアライブラリからも選択できます メディアライブラリ

サンプルデータ

{
"image": {
"id": "xxxxxxxxxxxx",
"sys": {
"createdAt": "2026-01-01T00:00:00.000Z",
"createdBy": "xxxxxxxxxxxx",
"updatedAt": "2026-01-01T00:00:00.000Z",
"updatedBy": "xxxxxxxxxxxx",
"publishedAt": "2026-01-01T00:00:00.000Z"
},
"title": "sample-image.jpg",
"description": "",
"altText": "",
"tagIds": [],
"file": {
"name": "sample-image.jpg",
"mimeType": "image/jpeg",
"src": "https://xxxxxxxx.assets.cross-cms.com/beta/cms/assets/image?apiKey=xxxxxxxx&imageId=xxxxxxxx",
"size": 999,
"width": 999,
"height": 999
}
}
}

オプション

概要
必須フィールド有効化時に、入力がない場合はコンテンツの公開(保存して公開)ができなくなります
複数選択有効化時に、複数の画像を入力できるようになります
最大アイテム数(複数選択が有効時)設定したアイテム数を超えた場合に、コンテンツの公開(保存して公開)ができなくなります
最小アイテム数(複数選択が有効時)設定したアイテム数未満の場合に、コンテンツの公開(保存して公開)ができなくなります

4. ファイル

入力インターフェース

ファイルフィールド

メディアライブラリからも選択できます メディアライブラリ

サンプルデータ

{
"file": {
"id": "xxxxxxxxxxxx",
"sys": {
"createdAt": "2026-01-01T00:00:00.000Z",
"createdBy": "xxxxxxxxxxxx",
"updatedAt": "2026-01-01T00:00:00.000Z",
"updatedBy": "xxxxxxxxxxxx",
"publishedAt": "2026-01-01T00:00:00.000Z"
},
"title": "sample-movie.mp4",
"description": "",
"altText": "",
"tagIds": [],
"file": {
"name": "sample-movie.mp4",
"mimeType": "video/mp4",
"src": "https://xxxxxxxx.assets.cross-cms.com/beta/cms/assets/asset?apiKey=xxxxxxxx&assetId=xxxxxxxx",
"size": 999
}
}
}

許可するファイルタイプ

画像、動画の選択肢からアップロードを許可するファイルタイプを指定できます。

オプション

概要
必須フィールド有効化時に、入力がない場合はコンテンツの公開(保存して公開)ができなくなります
複数選択有効化時に、複数の画像を入力できるようになります
最大アイテム数(複数選択が有効時)設定したアイテム数を超えた場合に、コンテンツの公開(保存して公開)ができなくなります
最小アイテム数(複数選択が有効時)設定したアイテム数未満の場合に、コンテンツの公開(保存して公開)ができなくなります

5. リッチテキスト

入力インターフェース

リッチテキストフィールド

サンプルデータ

{
"body": {
"text": "Sample Rich Text",
"html": "<h1>Sample Rich Text</h1>",
"json": {
"type": "doc",
"content": [
{
"type": "heading",
"attrs": {
"level": 1
},
"content": [
{
"type": "text",
"text": "Sample Rich Text"
}
]
}
]
}
}
}

入力タイプ

リッチテキストフィールドに表示される「太字」「斜体」などのフォーマットのうち、有効にするものを制御できます。

埋め込み設定

「埋め込み」の入力タイプで本文に挿入した、外部サービスのコンテンツの表示に関する設定です。遅延読み込みを有効にすると、埋め込んだコンテンツを遅延読み込みし、ページの初期表示の負荷を抑えられます。

カスタムクラス設定

本文中の要素に任意のクラスを付与する機能です。 クラスの選択肢をあらかじめ登録ておくと、入力時にその中から選んで要素に適用できます。付与したクラス名は取得時のHTMLにも反映されるため、フロントエンド側のCSSと対応づけて見た目を制御できます。

オプション

概要
必須フィールド有効化時に、入力がない場合はコンテンツの公開(保存して公開)ができなくなります
最大文字数設定した文字数を超える文字列を入力した際に、コンテンツの公開(保存して公開)ができなくなります
最小文字数設定した文字数未満の文字列を入力した際に、コンテンツの公開(保存して公開)ができなくなります

文字数は、通常の文字に加えて本文中の要素も次のルールでカウントされます。

  • リンク: テキスト部のみカウントします
  • 画像、埋め込み、水平線: それぞれ1文字としてカウントします
  • テーブル: 内部の文字数のみカウントします

6. 日付

入力インターフェース

日付フィールド

サンプルデータ

{
"date": "2026-01-01T00:00:00.000Z"
}

入力タイプ

入力タイプ
日時入力インターフェースに、日付と時刻が表示されます。保存されるデータはISO8601の形式で、UTCの日時となります。「2026年6月3日17:00」と入稿した場合は、「2026-06-03T08:00:00.000Z」となります。
日付のみ入力インターフェースに、日付のみが表示されます。保存されるデータはISO8601の形式で、UTCの日時となります。「2026年6月3日」と入稿した場合は、「2026-06-02T15:00:00.000Z」となります。

オプション

概要
必須フィールド有効化時に、入力がない場合はコンテンツの公開(保存して公開)ができなくなります

7. チェックボックス

入力インターフェース

チェックボックスフィールド

サンプルデータ

{
"check": true
}

入力タイプ

入力タイプ
チェックボックス入力インターフェースが、チェックボックスとなります
ラジオボタン入力インターフェースが、ラジオボタンとなります

8. 選択

入力インターフェース

選択フィールド

サンプルデータ

{
"select": "optionA"
}

フォームの選択肢

フォームの選択肢として、ラベルと値を指定できます。

オプション

概要
必須フィールド有効化時に、入力がない場合はコンテンツの公開(保存して公開)ができなくなります
複数選択有効化時に、複数の選択肢を選択できるようになります
最大アイテム数(複数選択が有効時)設定したアイテム数を超えた場合に、コンテンツの公開(保存して公開)ができなくなります
最小アイテム数(複数選択が有効時)設定したアイテム数未満の場合に、コンテンツの公開(保存して公開)ができなくなります

9. 参照

入力インターフェース

参照フィールド

サンプルデータ

参照先のコンテンツのidが入ります。

{
"reference": "xxxxxxxxxxxx"
}

参照先モデル

参照先のモデルを指定します。

オプション

概要
必須フィールド有効化時に、入力がない場合はコンテンツの公開(保存して公開)ができなくなります
複数選択有効化時に、複数の参照を入力できるようになります
最大アイテム数(複数選択が有効時)設定したアイテム数を超えた場合に、コンテンツの公開(保存して公開)ができなくなります
最小アイテム数(複数選択が有効時)設定したアイテム数未満の場合に、コンテンツの公開(保存して公開)ができなくなります

10. 地図

入力インターフェース

地図フィールド

サンプルデータ

{
"map": {
"lat": 35.669769837176496,
"lng": 139.76417183876038
}
}

オプション

概要
必須フィールド有効化時に、入力がない場合はコンテンツの公開(保存して公開)ができなくなります
デフォルトビュー設定した中心座標とズームレベルが、入力時のデフォルト表示となります

11. マルチタイプ

入力インターフェース

マルチタイプフィールド

サンプルデータ

{
"multiType": {
"type": "TEXT",
"data": "Sample Multi Type Text"
}
}

使用できるフィールドタイプ

入力時に選択可能なフィールドタイプを指定します。

オプション

概要
必須フィールド有効化時に、入力がない場合はコンテンツの公開(保存して公開)ができなくなります
複数選択有効化時に、複数のタイプを入力できるようになります
最大アイテム数(複数選択が有効時)設定したアイテム数を超えた場合に、コンテンツの公開(保存して公開)ができなくなります
最小アイテム数(複数選択が有効時)設定したアイテム数未満の場合に、コンテンツの公開(保存して公開)ができなくなります

カスタムフィールドタイプ

カスタムフィールドタイプは、1つ以上のフィールドによって構成されるオブジェクト型のフィールドタイプです。いくつかのデフォルトフィールドタイプと他のカスタムフィールドタイプを組み合わせることで、カスタムフィールドタイプを作ることができます。

たとえば「リンク」を「表示テキスト」と「URL」の2つのフィールドの組み合わせとして定義しておくと、複数のモデルから同じ構造のフィールドとして繰り返し利用できます。

管理画面での操作

モデルとフィールドはKARTE Craftの管理画面から作成、編集できます。

  • KARTE管理画面にログインし、[すべてのメニュー]>[Craft]>[コンテンツ設定]を選択すると、コレクション設定画面が開きます
  • モデルを作成する場合は、対象のコレクションの中で[モデルを追加]を選択します
  • モデルを編集する場合は、対象のモデルをクリックし、[フィールド設定]または[モデル設定]から編集します