Gå til indhold

Modeller, enums og egenskaber

Modellerne beskriver dit API’s data. En model bærer typede egenskaber, og disse egenskaber kan referere til andre modeller eller til enums.

Sektionen Modeller: listen over en models egenskaber med deres type, deres flag og et eksempel

En enum er et lukket sæt af værdier (for eksempel en status draft / published / archived). Et design håndterer dem på to måder:

  • Navngivne enums — genanvendelige og af første klasse. Fra sektionen Enums, brug Tilføj en enum, giv den et navn og en beskrivelse, og derefter Tilføj en værdi for hver post. En egenskab (eller en ruteparameter) refererer den derefter via sin type.
  • Inline-enums — et anonymt sæt, der erklæres direkte på en egenskab. På en egenskab af typen string / integer / number lader en chip-editor Enum-værdier dig opliste de tilladte værdier på stedet, uden at oprette en navngiven type.

Når en inline-enum fortjener at blive delt, forfremmer Udtræk til en navngiven enum den: den opretter den navngivne enum (og genbruger en eksisterende enum med de samme værdier for at undgå dubletter) og omskriver egenskaben, så den refererer den. Ruteparametrene bærer også inline-enums og den samme Udtræk-handling — se Ruter & CRUD.

Vælg en model i sektionen Modeller: dens egenskaber vises i en tabel (Egenskab, Type, Flag, Eksempel). Brug Tilføj en egenskab for at oprette en.

En egenskab kan være af typen:

  • en primitiv: string, integer, number, boolean;
  • et array (array<…>) eller et map (map<…>) af en anden type;
  • en reference til en anden model;
  • en reference til en enum.

For en string kan du angive et format: email, uuid, date, date-time, uri, hostname, ipv4, password eller byte.

Ud over typen accepterer en egenskab talrige felter: Beskrivelse, Eksempel, Standardværdi, Minimum / Maksimum, Minimumslængde / Maksimumslængde, Mønster (regex), Udfasningsmeddelelse, og — for referencer — en adfærd On delete.

Flag kvalificerer egenskaben og vises i form af mærker: påkrævet, nullable, unik, uforanderlig, searchable (søgbar — se Ruter & CRUD), udfaset, skrivebeskyttet, kun skrivbar, og PII (personoplysninger).

Hver model har sine egne indstillinger:

  • Identitet — den identificerende egenskab og dens genererings-strategi (uuid, autoIncrement eller ulid). Det er denne identifikator, der er knyttet til parametrene {{id}} i de genererede ruter.
  • Arv — en model kan arve fra en forælder; barnet viser forælderens egenskaber skrivebeskyttet, ud over sine egne.
  • Lagring & livscyklus — forventet volumen, tidsstempler (created / updated) og blød sletning (soft delete).

Det er også fra disse indstillinger, at man starter Generer CRUD og Generer søgeruterne — beskrevet på næste side.