Input-Typen der Neuaufnahme
Eine Definition ist eine durch Kommas getrennte Liste von name:Type, zum Beispiel *email:Email, age:Number. Ein * vor dem Namen macht das Feld zur Pflicht. Dasselbe Format gilt für input (den Body), params, query und output. Der Typ wandelt den Wert um: Die Action erhält den umgewandelten Wert, nicht den gesendeten Text.
Die Namen der Typen unterscheiden nicht zwischen Groß- und Kleinschreibung. Jeder Typ unten wurde geprüft, indem der Wert der zweiten Spalte gesendet wurde.
| Typ | Gesendeter Wert | Empfangener Wert | Hinweise |
|---|---|---|---|
String | hello | hello | Text; Leerzeichen am Anfang und am Ende werden entfernt. |
Text | text | text | Text, genau so beibehalten, wie er gesendet wurde. |
Email | A@B.CZ | a@b.cz | Eine gültige E-Mail-Adresse in Kleinbuchstaben; alles andere wird abgelehnt. |
Phone | +421 900 123 456 | +421900123456 | Eine Telefonnummer; Leerzeichen werden entfernt. |
URL | https://totaljs.com/x | https://totaljs.com/x | Eine gültige URL; alles andere wird abgelehnt. |
Name | john smith | John Smith | Schreibt jedes Wort groß. |
Capitalize | hello big world | Hello Big World | Schreibt jedes Wort groß. |
Capitalize2 | HELLO big WORLD | Hello big world | Schreibt nur den ersten Buchstaben groß und den Rest klein. |
Lowercase | ABC | abc | Kleinbuchstaben. |
Uppercase | abc | ABC | Großbuchstaben. |
Search | Žluťoučký Kůň | zlutoucki kun | Kleinbuchstaben ohne Akzente, zum Suchen. |
SafeString | plain text | plain text | Text; ein Wert mit HTML-Tags wie <b> wird abgelehnt. |
Color | #FF0000 | #FF0000 | schema-enums-and-formats |
Base64 | SGVsbG8= | SGVsbG8= | schema-enums-and-formats |
Zip | 81101 | 81101 | schema-enums-and-formats |
Icon | ti ti-home | ti ti-home | schema-enums-and-formats |
Number | 12.5 | 12.5 | Eine Zahl; der Text wird umgewandelt. |
Float | 3.14 | 3.14 | Eine Zahl; der Text wird umgewandelt. |
Decimal | 2.5 | 2.5 | Eine Zahl; der Text wird umgewandelt. |
Boolean | true | true | true oder false; der Text true wird umgewandelt. |
Date | 2026-01-05 | 2026-01-05T00:00:00.000Z | Ein Datum. In JSON wird es als ISO-Text gesendet. |
Weitere Formen:
| Form | Beispiel | Hinweise |
|---|---|---|
[String], [Number] | ze_arr:[String] | Ein Array dieses Typs: Jedes Element wird umgewandelt. |
{ x:Number, y:String } | zg_obj:{ x:Number, y:String } | Ein verschachteltes Objekt, mit eigenen Feldern validiert. |
String(5) | zd_max:String(5) | Ein Text mit höchstens 5 Zeichen; ein längerer Text wird abgelehnt. |
Ein Wert, der nicht zum Typ passt, wird mit Status 400 und dem Namen des Feldes im Fehler abgelehnt. In den Prüfungen wurden diese Werte abgelehnt: SafeString mit <b>x</b>, String(5) mit zehn Zeichen, eine UID mit abc und eine GUID mit not-guid. Das Grenzwert-Rezept prüft Int, SmallInt, TinyInt, Number2: numeric-schema-boundaries. In dieser Version schneidet Int nicht ab: 7.9 bleibt 7.9.
UID und GUID akzeptieren die Werte, die UID() und GUID() erzeugen.
NEWACTION('Types/all', {
name: 'Every type',
input: 'a_string:String, b_text:Text, c_email:Email, d_phone:Phone, e_url:URL, f_name:Name, g_capitalize:Capitalize, h_capitalize2:Capitalize2, i_lowercase:Lowercase, j_uppercase:Uppercase, k_search:Search, l_safestring:SafeString, m_color:Color, n_base64:Base64, o_zip:Zip, p_icon:Icon, q_number:Number, r_float:Float, s_decimal:Decimal, t_boolean:Boolean, u_date:Date, ze_arr:[String], zf_nums:[Number], zg_obj:{ x:Number, y:String }, zd_max:String(5)',
action: function($, model) {
$.callback(model);
}
});
NEWACTION('Types/ids', {
name: 'UID and GUID',
input: '*id:UID, *key:GUID',
action: function($, model) {
$.callback(model);
}
});exports.install = function() {
ROUTE('POST /types/ @json --> *Types/all');
ROUTE('POST /ids/ @json --> *Types/ids');
ROUTE('GET /newids/', ids);
};
function ids($) {
$.json({ id: UID(), key: GUID() });
}