Hoppa till innehåll

Modeller, enumar och egenskaper

Modellerna beskriver ditt API:s data. En modell bär typade egenskaper, och dessa egenskaper kan referera till andra modeller eller till enumar.

Sektionen Modeller: listan över en modells egenskaper med deras typ, deras flaggor och ett exempel

En enum är en sluten uppsättning av värden (till exempel en status draft / published / archived). En design hanterar dem på två sätt:

  • Namngivna enumar — återanvändbara och av första klass. Från sektionen Enumar, använd Lägg till en enum, ge den ett namn och en beskrivning, och sedan Lägg till ett värde för varje post. En egenskap (eller en ruttparameter) refererar den sedan via sin typ.
  • Inline-enumar — en anonym uppsättning som deklareras direkt på en egenskap. På en egenskap av typen string / integer / number låter en chip-editor Enum-värden dig lista de tillåtna värdena på plats, utan att skapa en namngiven typ.

När en inline-enum förtjänar att delas, befordrar Extrahera till en namngiven enum den: den skapar den namngivna enumen (och återanvänder en befintlig enum med samma värden, för att undvika dubbletter) och skriver om egenskapen så att den refererar den. Ruttparametrarna bär också inline-enumar och samma Extrahera-åtgärd — se Rutter & CRUD.

Välj en modell i sektionen Modeller: dess egenskaper visas i en tabell (Egenskap, Typ, Flaggor, Exempel). Använd Lägg till en egenskap för att skapa en.

En egenskap kan vara av typen:

  • en primitiv: string, integer, number, boolean;
  • en array (array<…>) eller en map (map<…>) av en annan typ;
  • en referens till en annan modell;
  • en referens till en enum.

För en string kan du ange ett format: email, uuid, date, date-time, uri, hostname, ipv4, password eller byte.

Utöver typen accepterar en egenskap många fält: Beskrivning, Exempel, Standardvärde, Minimum / Maximum, Minlängd / Maxlängd, Mönster (regex), Föråldringsmeddelande, och — för referenser — ett beteende On delete.

Flaggor kvalificerar egenskapen och visas i form av märken: obligatorisk, nullable, unik, oföränderlig, searchable (sökbar — se Rutter & CRUD), föråldrad, skrivskyddad, endast skrivbar, och PII (personuppgifter).

Varje modell har egna inställningar:

  • Identitet — den identifierande egenskapen och dess genererings-strategi (uuid, autoIncrement eller ulid). Det är denna identifierare som knyts till parametrarna {{id}} i de genererade rutterna.
  • Arv — en modell kan ärva från en förälder; barnet visar förälderns egenskaper skrivskyddade, utöver sina egna.
  • Lagring & livscykel — förväntad volym, tidsstämplar (created / updated) och mjuk borttagning (soft delete).

Det är också från dessa inställningar som man startar Generera CRUD och Generera sökrutterna — beskrivna på nästa sida.