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: DerapiNamedes 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 istfalse.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.
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
id | string | Eindeutige Kennung der Ressource. |
type | string | Ressourcenart. Bei einem Content Type immer "ContentType". |
space | Refer<Space> | Der Space, zu dem dieser Content Type gehört. |
createdBy | Refer<User> | Der Benutzer, der die Ressource erstellt hat. |
createdAt | string (date-time) | Erstellungszeitpunkt. |
updatedBy | Refer<User> | Der Benutzer, der zuletzt bearbeitet hat. |
updatedAt | string (date-time) | Zeitpunkt der letzten Bearbeitung. |
version | integer (≥1) | Version der Ressource. Erhöht sich bei jeder Änderung wie Erstellen, Bearbeiten, Veröffentlichen oder Zurückziehen um 1. |
status | string (enum) | Veröffentlichungsstatus. Einer von Draft, Changed, Published, Archived. |
publish | object | Veröffentlichungsverlauf. Siehe die Schlüssel unten. |
Schlüssel des Objekts publish:
| Schlüssel | Typ | Beschreibung |
|---|---|---|
version | integer | sys.version zum Zeitpunkt der letzten Veröffentlichung. |
at | string (date-time) | Zeitpunkt der letzten Veröffentlichung. |
firstAt | string (date-time) | Zeitpunkt der ersten Veröffentlichung. Bleibt auch beim Zurückziehen erhalten. |
counter | integer | Kumulierte Anzahl der Veröffentlichungen. |
by | Refer<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üssel | Typ | Beschreibung |
|---|---|---|
id | string (1-64) | Eindeutige Kennung des Feldes. Wird beim Erstellen automatisch vergeben. |
name | string (1-50) | Der im Content-Studio angezeigte Feldname (z. B. Produktname). |
apiName | string (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, -, _). |
type | string (enum) | Der Typ des Feldes. Siehe Feldarten (type) unten. |
localized | boolean | Gibt an, ob mehrsprachige Werte möglich sind. |
required | boolean | Gibt an, ob eine Eingabe erforderlich ist. |
validations | array | Die Liste der Validierungsregeln, die auf den Wert angewendet werden. Ohne Regeln ein leeres Array []. Siehe Validierung (validations) unten. |
disabled | boolean | Gibt an, ob das Feld deaktiviert ist. |
targetType | string (enum) | Nur wenn type gleich Refer ist. Ob das Verweisziel Content oder Media ist. |
items | object | Nur 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.
type | Bedeutung | Hinweis |
|---|---|---|
ShortText | Kurzer einzeiliger Text. | Geeignet für die exakte Abfrage nach Schlüsselwörtern. |
LongText | Langer Fließtext. | Unterstützt die Volltext-Ähnlichkeitssuche. |
RichText | Formatierter Fließtext. | Nicht durchsuchbar, dient der Darstellung mit Formatierung. |
Long | Ganzzahl. | Beispiel: Preis price. |
Number | Reelle Zahl (mit Nachkommastellen). | |
Boolean | Wahr/falsch. | |
Date | Datum/Uhrzeit. | |
Json | Beliebige JSON-Struktur. | |
Location | Standort (Koordinaten). | |
Refer | Verweis auf eine andere Ressource. | Mit targetType wird Content oder Media angegeben. |
Array | Array, 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üssel | Form | Beschreibung |
|---|---|---|
size | { "min", "max" } | Minimum und Maximum der Textlänge oder der Arraygröße. |
unique | boolean | Verbietet 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. |
in | array | Liste 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. |
mediaMimetypeGroup | array | Liste 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). |
referContentType | array | Liste der Content Type, deren Verweis in einem Refer-Feld (Content) zulässig ist. Jeder Eintrag hat die Form Refer<ContentType>. |
message | string | Eine 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.
status | Bedeutung |
|---|---|
Draft | Nicht veröffentlichter Zustand. |
Changed | War bereits veröffentlicht, aber die seitdem erfolgten Änderungen sind noch nicht veröffentlicht. |
Published | Veröffentlicht und ohne unveröffentlichte Änderungen. |
Archived | Archivierter 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
| Ziel | Einschränkung |
|---|---|
name (Content Type) | 1-64 Zeichen, erforderlich. |
description | Höchstens 128 Zeichen, optional. |
fields | Beim 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 aufDraftzu setzen, und löschen Sie ihn dann (auch der StatusArchivedist 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.
Verwandte Dokumente
- Content-Modellierung: Wie man einen Content Type im Content-Studio erstellt.
- Status und Veröffentlichung: Bedeutung von Veröffentlichung und Version.
