Zum Hauptinhalt springen

Verfügbare Datentypen

Die Beschreibung der Felder lehnt sich an den fastest-validator an. Unterstützt wird aber nur eine Auswahl seiner Typen und Parameter, dazu kommen einige CMS-eigene Typen. Nur type ist immer anzugeben. Unbekannte Parameter werden abgewiesen.

Als Beispiel wird eine API tutorial/people Schritt für Schritt aufgebaut. Die Beispiele verwenden jeweils alle unterstützten Einstellungen, ob im Einzelfall sinnvoll oder nicht. In den Kapiteln steht { "…": "wie zuvor" } für die bereits beschriebenen Felder. Die vollständige Beschreibung zum Kopieren steht unten.

TypKapitelLokalisierbar
stringZeichenketteja
htmlHTML-Inhaltja
numberZahlja
booleanWahrheitswertja
emailE-Mailja
objectSubstrukturja
arrayFeld (Liste)ja
fileMediendateija
geo-pointGEO-Koordinatenein
compoundMakroja

Gemeinsame Parameter​

ParameterBedeutung
typeDatentyp, Pflicht
optionaltrue: Das Feld darf fehlen. Voreinstellung false, das Feld ist also Pflicht.
localizabletrue: Der Wert ist je Sprache getrennt, siehe Mehrsprachigkeit.
cmsMeta-Daten für Datenbank und Pflegeanwendung

Bei lokalisierbaren Feldern wird in der Schnittstelle statt des einfachen Werts immer ein Objekt mit einem Eintrag je Sprache übertragen, z. B. { "de": "…", "en": "…" }.

Vollständiges Beispiel​

Die API tutorial/people mit allen Feldern aus den Kapiteln Zeichenkette bis Feld:

{
"application": "Tutorial",
"label": "People",
"project": "inSynergie CMS",
"fields": {
"name": {
"cms": { "column": true },
"empty": false,
"max": 40,
"min": 4,
"type": "string"
},
"age": {
"cms": { "column": true },
"integer": true,
"max": 120,
"min": 0,
"optional": true,
"type": "number"
},
"married": {
"cms": { "column": true },
"optional": true,
"type": "boolean"
},
"email": {
"cms": { "column": true },
"type": "email"
},
"address": {
"cms": { "column": true },
"optional": true,
"properties": {
"city": { "cms": { "column": true }, "optional": true, "type": "string" },
"street": { "optional": true, "type": "string" },
"postalcode": { "optional": true, "type": "string" }
},
"strict": true,
"type": "object"
},
"colleagues": {
"optional": true,
"items": {
"properties": {
"first": { "optional": true, "type": "string" },
"last": { "type": "string" }
},
"strict": true,
"type": "object"
},
"min": 0,
"max": 5,
"type": "array"
}
}
}
curl -X POST -u 'CMS_User_01:<kennwort>' -H 'Content-Type: application/json' \
-d @people.json https://cms.example.org/schema/tutorial/people

Ein passender Datensatz:

{
"name": "Nicolas",
"age": 42,
"married": false,
"email": "nicolas@example.org",
"address": { "city": "Bonn" },
"colleagues": [{ "first": "Ada", "last": "Lovelace" }]
}