Content Type

Zuletzt aktualisiert: 3. Juli 2026

Ein Content Type ist das Schema (die Vorlage), dem ein Inhalt folgt. Er legt fest, welche Felder vorhanden sind und welchen Typ, welche Mehrsprachigkeit, welche Pflichteigenschaft und welche Validierungsregeln jedes Feld hat. Am Beispiel des "Produkts" eines Bekleidungsshops wird die Zusammenstellung von Angaben wie Produktname, Preis, ausführliche Beschreibung und Titelbild durch einen einzigen Content Type "Produkt" festgelegt, und die einzelnen Produkte selbst werden als Content erstellt, der dieser Vorlage folgt.

In der CMA ist ein Content Type eine untergeordnete Ressource eines Space und folgt dem Pfad /spaces/{spaceId}/content-types. Verwaltungsvorgänge wie Erstellen, Bearbeiten und Zurückziehen werden in der CMA ausgeführt, und der veröffentlichte Snapshot wird über die CDA ausgeliefert. Ein Content Type wird beim Erstellen und Bearbeiten jedoch automatisch veröffentlicht und erhält daher anders als ein Content ohne separaten Veröffentlichungsaufruf sofort den Status Published (siehe Status und automatische Veröffentlichung weiter unten).

Ressourcenstruktur

Im Folgenden sehen Sie die Antwort einer Einzelabfrage des Content Type "Produkt". Neben sys (Systemeigenschaften) enthält er Hauptkörper-Eigenschaften wie name, displayField, publishWithAuthor und fields.

{
  "sys": {
    "id": "3trmXRLdJF4GBlAjtcuoZ7Pnxj8dlA",
    "type": "ContentType",
    "space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
    "publish": {
      "version": 7,
      "at": "2026-06-17T03:13:49.973Z",
      "firstAt": "2026-06-14T17:04:46.953Z",
      "counter": 4,
      "by": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } }
    },
    "createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
    "createdAt": "2026-06-14T17:04:46.846Z",
    "updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
    "updatedAt": "2026-06-17T03:13:49.973Z",
    "version": 8,
    "status": "Published"
  },
  "name": "Produkt",
  "displayField": "productName",
  "publishWithAuthor": false,
  "fields": [
    { "id": "5n06s7ocmwdi", "name": "Produktname", "apiName": "productName", "type": "ShortText", "localized": true, "required": true, "validations": [], "disabled": false },
    { "id": "1gecyz8g4llwf", "name": "Preis", "apiName": "price", "type": "Long", "localized": false, "required": false, "validations": [], "disabled": false },
    { "id": "3ow4popgz54zg", "name": "Beschreibung", "apiName": "description", "type": "RichText", "localized": true, "required": false, "validations": [], "disabled": false },
    { "id": "2alxdptmdub1s", "name": "Foto", "apiName": "photo", "type": "Refer", "localized": false, "required": false, "validations": [], "disabled": false, "targetType": "Media" },
    {
      "id": "2a80lehazfx3t",
      "name": "Marke",
      "apiName": "brand",
      "type": "Refer",
      "localized": false,
      "required": false,
      "validations": [
        { "referContentType": [ { "sys": { "id": "3trmXRM3RqbgSnifyg7OveRYWnJWEG", "type": "Refer", "targetType": "ContentType" } } ] }
      ],
      "disabled": false,
      "targetType": "Content"
    }
  ]
}

Wichtige Schlüssel:

  • sys.id: Die eindeutige Kennung des Content Type. Sie wird in {contentTypeId} der Pfade für Einzelabfrage, Bearbeiten und Löschen eingesetzt.
  • name: Der Name des Content Type (z. B. Produkt).
  • displayField: Der apiName des Feldes, das in der Content-Studio-Liste stellvertretend für jeden Content angezeigt wird (z. B. productName).
  • publishWithAuthor: Gibt an, ob beim Veröffentlichen eines Content die Autoreninformationen mitgeführt werden. Der Standardwert ist false.
  • fields: Die Liste der Felder, die diese Vorlage definiert. Die Struktur jedes Eintrags wird unten unter Felder beschrieben.

Das Feld photo hat type Refer und targetType Media und verweist daher auf ein hochgeladenes Dateiasset. Das Feld brand ist Refer + targetType: Content und beschränkt über referContentType in validations den Verweis auf den Content eines bestimmten Content Type (hier "Marke").

Systemeigenschaften (sys)

Jeder Content Type führt gemeinsame Systemeigenschaften sowie Content Type-spezifische Eigenschaften im Objekt sys. space, createdBy und updatedBy werden in der Refer-Form ({ "sys": { "id", "type": "Refer", "targetType" } }) abgelegt.

EigenschaftTypBeschreibung
idstringEindeutige Kennung der Ressource.
typestringRessourcenart. Bei einem Content Type immer "ContentType".
spaceRefer<Space>Der Space, zu dem dieser Content Type gehört.
createdByRefer<User>Der Benutzer, der die Ressource erstellt hat.
createdAtstring (date-time)Erstellungszeitpunkt.
updatedByRefer<User>Der Benutzer, der zuletzt bearbeitet hat.
updatedAtstring (date-time)Zeitpunkt der letzten Bearbeitung.
versioninteger (≥1)Version der Ressource. Erhöht sich bei jeder Änderung wie Erstellen, Bearbeiten, Veröffentlichen oder Zurückziehen um 1.
statusstring (enum)Veröffentlichungsstatus. Einer von Draft, Changed, Published, Archived.
publishobjectVeröffentlichungsverlauf. Siehe die Schlüssel unten.

Schlüssel des Objekts publish:

SchlüsselTypBeschreibung
versionintegersys.version zum Zeitpunkt der letzten Veröffentlichung.
atstring (date-time)Zeitpunkt der letzten Veröffentlichung.
firstAtstring (date-time)Zeitpunkt der ersten Veröffentlichung. Bleibt auch beim Zurückziehen erhalten.
counterintegerKumulierte Anzahl der Veröffentlichungen.
byRefer<User>Der Benutzer, der zuletzt veröffentlicht hat.

Beim Zurückziehen (DELETE .../publish) werden version, at und by aus publish entfernt, und nur firstAt und counter bleiben erhalten.

Das sys eines Content Type enthält nicht die Eigenschaft contentType (Selbstverweis), die im sys eines Content vorhanden ist. Das liegt daran, dass der Content Type selbst die Vorlage ist. Auch die Eigenschaft archive ist nicht vorhanden.

Felder

fields ist die Liste der Felder, die dieser Content Type definiert. Jeder Eintrag hat die folgende Struktur (FieldDefinition).

SchlüsselTypBeschreibung
idstring (1-64)Eindeutige Kennung des Feldes. Wird beim Erstellen automatisch vergeben.
namestring (1-50)Der im Content-Studio angezeigte Feldname (z. B. Produktname).
apiNamestring (1-64)Der Schlüssel, der dieses Feld in der API bezeichnet. Muster ^[a-zA-Z0-9][a-zA-Z0-9-_]*$ (beginnt mit Buchstabe oder Ziffer, danach Buchstaben, Ziffern, -, _).
typestring (enum)Der Typ des Feldes. Siehe Feldarten (type) unten.
localizedbooleanGibt an, ob mehrsprachige Werte möglich sind.
requiredbooleanGibt an, ob eine Eingabe erforderlich ist.
validationsarrayDie Liste der Validierungsregeln, die auf den Wert angewendet werden. Ohne Regeln ein leeres Array []. Siehe Validierung (validations) unten.
disabledbooleanGibt an, ob das Feld deaktiviert ist.
targetTypestring (enum)Nur wenn type gleich Refer ist. Ob das Verweisziel Content oder Media ist.
itemsobjectNur wenn type gleich Array ist. Die Definition der Arrayelemente (Refer-Element oder ShortText-Element).

Feldarten (type)

type bestimmt, wie der Wert gespeichert und abgefragt wird. Bei einigen Typen verhält sich die Suche unterschiedlich.

typeBedeutungHinweis
ShortTextKurzer einzeiliger Text.Geeignet für die exakte Abfrage nach Schlüsselwörtern.
LongTextLanger Fließtext.Unterstützt die Volltext-Ähnlichkeitssuche.
RichTextFormatierter Fließtext.Nicht durchsuchbar, dient der Darstellung mit Formatierung.
LongGanzzahl.Beispiel: Preis price.
NumberReelle Zahl (mit Nachkommastellen).
BooleanWahr/falsch.
DateDatum/Uhrzeit.
JsonBeliebige JSON-Struktur.
LocationStandort (Koordinaten).
ReferVerweis auf eine andere Ressource.Mit targetType wird Content oder Media angegeben.
ArrayArray, das mehrere Werte aufnimmt.Wird von items mit der Elementdefinition begleitet.

Im Beispiel "Produkt" ist Produktname ShortText, Preis Long, Beschreibung RichText, Foto Refer (targetType: Media) und Marke Refer (targetType: Content).

Validierung (validations)

validations ist das Array der Regeln, die auf den Feldwert angewendet werden. Jeder Eintrag enthält einen der folgenden Schlüssel.

SchlüsselFormBeschreibung
size{ "min", "max" }Minimum und Maximum der Textlänge oder der Arraygröße.
uniquebooleanVerbietet doppelte Werte innerhalb desselben Content Type.
regexp{ "pattern", "flags" }Der Wert muss mit dem regulären Ausdruck übereinstimmen. pattern ist erforderlich.
prohibitRegexp{ "pattern", "flags" }Lehnt den Wert ab, wenn er mit dem regulären Ausdruck übereinstimmt. pattern ist erforderlich.
inarrayListe der zulässigen Werte. Nur Werte aus der Liste werden akzeptiert.
range{ "min", "max" }Minimum und Maximum eines Zahlenwerts.
dateRange{ "min", "max", "after", "before" }Zulässiger Bereich eines Datumswerts.
mediaMimetypeGrouparrayListe der zulässigen Dateitypen für ein Refer-Feld (Media). Siehe enum unten.
mediaImageDimensions{ "width", "height" }Pixelbeschränkung für Breite und Höhe eines Bildes.
mediaFileSize{ "min", "max" }Minimum und Maximum der Dateigröße (Bytes).
referContentTypearrayListe der Content Type, deren Verweis in einem Refer-Feld (Content) zulässig ist. Jeder Eintrag hat die Form Refer<ContentType>.
messagestringEine benutzerdefinierte Meldung, die bei fehlgeschlagener Validierung angezeigt wird.

Werte, die für mediaMimetypeGroup verwendet werden können (12 Stück): Attachment, Plaintext, Image, Audio, Video, RichText, Presentation, Spreadsheet, PdfDocument, Archive, Code, Markup.

Das Feld brand im Beispiel "Produkt" beschränkt über referContentType den Verweis auf den Content Type "Marke" (sys.id ist 3trmXRM3RqbgSnifyg7OveRYWnJWEG).

Status und automatische Veröffentlichung

Ein Content Type wird beim Erstellen, Bearbeiten und Teilbearbeiten automatisch veröffentlicht. Darin unterscheidet er sich von einem Content. Ein Content gelangt erst nach einem separaten Veröffentlichungsaufruf in den Auslieferungspfad, während bei einem Content Type die Erstellungsantwort sofort mit status: "Published" zurückkommt.

status ist einer der folgenden vier Werte.

statusBedeutung
DraftNicht veröffentlichter Zustand.
ChangedWar bereits veröffentlicht, aber die seitdem erfolgten Änderungen sind noch nicht veröffentlicht.
PublishedVeröffentlicht und ohne unveröffentlichte Änderungen.
ArchivedArchivierter Zustand.

sys.version erhöht sich bei jeder Änderung um 1. Da bei einem Content Type Bearbeitung und Veröffentlichung in einem Schritt erfolgen, erhöht eine einzelne Bearbeitung version um 2 (Bearbeitung selbst +1, automatische Veröffentlichung +1). Im Beispiel "Mitteilung" ist version direkt nach dem Erstellen 2 (Erstellen +1, automatische Veröffentlichung +1) und publish.counter 1. Bearbeitet man anschließend, wird version zu 4 und publish.counter zu 2.

Der einzige Weg, auf dem ein Content Type zu Draft wird, ist das ausdrückliche Zurückziehen (DELETE .../publish). Beim Zurückziehen wird status zu Draft, und im Objekt publish entfallen version, at und by, während nur firstAt und counter erhalten bleiben.

Einschränkungen

ZielEinschränkung
name (Content Type)1-64 Zeichen, erforderlich.
descriptionHöchstens 128 Zeichen, optional.
fieldsBeim Erstellen 1-80 Stück, beim Bearbeiten mindestens 1.
name (Feld)1-50 Zeichen, erforderlich.
apiName (Feld)1-64 Zeichen, Muster ^[a-zA-Z0-9][a-zA-Z0-9-_]*$, erforderlich.

Löschschutz: Das Löschen muss beide Bedingungen erfüllen.

  • Existiert auch nur ein Content, der diesen Content Type verwendet, kann er nicht gelöscht werden (WGL422010). Löschen Sie zuerst alle betreffenden Content. Diese Prüfung greift zuerst.
  • Ein Content Type im veröffentlichten Status (Published, Changed) kann nicht unmittelbar gelöscht werden (WGL422009). Ziehen Sie ihn zuerst zurück (DELETE .../publish), um ihn auf Draft zu setzen, und löschen Sie ihn dann (auch der Status Archived ist löschbar).

API

Die Basis-URL aller folgenden Endpunkte ist https://cma.weegloo.com/v1, und im Header Authorization ist ein Bearer-Token erforderlich, das sich bei der CMA authentifiziert. Bei Bearbeiten, Teilbearbeiten, Veröffentlichen und Zurückziehen muss für die optimistische Nebenläufigkeitskontrolle zusätzlich der Header X-Weegloo-Version (das sys.version der aktuellen Ressource) mitgesendet werden.