Salta ai contenuti

Modelli, enum e proprietà

I modelli descrivono i dati della sua API. Un modello porta proprietà tipizzate, e queste proprietà possono referenziare altri modelli o enum.

La sezione Modelli: l'elenco delle proprietà di un modello con il loro tipo, i loro flag e un esempio

Un enum è un insieme di valori chiuso (per esempio uno stato draft / published / archived). Un design li gestisce in due modi:

  • Enum denominati — riutilizzabili, di primo livello. Dalla sezione Enum, usi Aggiungi un enum, gli dia un nome e una descrizione, poi Aggiungi un valore per ogni voce. Una proprietà (o un parametro di rotta) lo referenzia poi tramite il suo tipo.
  • Enum inline — un insieme anonimo dichiarato direttamente su una proprietà. Su una proprietà string / integer / number, un editor a chip Valori di enum Le permette di elencare i valori consentiti direttamente lì, senza creare un tipo denominato.

Quando un enum inline merita di essere condiviso, Estrai in un enum denominato lo promuove: crea l’enum denominato (riutilizzando un enum esistente con gli stessi valori, per evitare i duplicati) e riscrive la proprietà affinché lo referenzi. Anche i parametri di rotta portano enum inline e la stessa azione Estrai — vedi Rotte e CRUD.

Nella sezione Modelli, selezioni un modello: le sue proprietà si mostrano in una tabella (Proprietà, Tipo, Flag, Esempio). Usi Aggiungi una proprietà per crearne una.

Una proprietà può essere di tipo:

  • un primitivo: string, integer, number, boolean;
  • un array (array<…>) o una map (map<…>) di un altro tipo;
  • un riferimento a un altro modello;
  • un riferimento a un enum.

Per un string, può precisare un formato: email, uuid, date, date-time, uri, hostname, ipv4, password o byte.

Oltre al tipo, una proprietà accetta numerosi campi: Descrizione, Esempio, Valore predefinito, Minimo / Massimo, Lunghezza min / Lunghezza max, Pattern (regex), Messaggio di deprecazione, e — per i riferimenti — un comportamento On delete.

Dei flag qualificano la proprietà e si mostrano sotto forma di badge: obbligatorio, nullable, unico, immutabile, searchable (interrogabile — vedi Rotte e CRUD), deprecato, sola lettura, sola scrittura, e PII (dato personale).

Ogni modello ha le sue proprie impostazioni:

  • Identità — la proprietà identificante e la sua strategia di generazione (uuid, autoIncrement o ulid). È questo identificatore a essere collegato ai parametri {{id}} delle rotte generate.
  • Ereditarietà — un modello può ereditare da un genitore; il figlio mostra le proprietà del genitore in sola lettura, oltre alle sue.
  • Archiviazione e ciclo di vita — volumetria attesa, marcature temporali (created / updated) e eliminazione soft (soft delete).

È anche da queste impostazioni che si lancia Genera il CRUD e Genera le rotte di ricerca — descritti nella pagina seguente.