Przejdź do głównej zawartości

Modele, enumy i właściwości

Modele opisują dane Pana/Pani API. Model posiada typowane właściwości, a te właściwości mogą odwoływać się do innych modeli lub do enumów.

Sekcja Modele: lista właściwości modelu wraz z ich typem, flagami i przykładem

Enum to zamknięty zbiór wartości (na przykład status draft / published / archived). Projekt obsługuje je na dwa sposoby:

  • Enumy nazwane — wielokrotnego użytku, pierwszej klasy. W sekcji Enumy proszę użyć Dodaj enum, nadać mu nazwę i opis, a następnie Dodaj wartość dla każdego wpisu. Właściwość (lub parametr trasy) odwołuje się do niego następnie przez swój typ.
  • Enumy inline — anonimowy zbiór zadeklarowany bezpośrednio na właściwości. Na właściwości string / integer / number edytor żetonów Wartości enuma pozwala wypisać dozwolone wartości na miejscu, bez tworzenia nazwanego typu.

Gdy enum inline zasługuje na współdzielenie, Wyodrębnij do nazwanego enuma promuje go: tworzy nazwany enum (ponownie wykorzystując istniejący enum o tych samych wartościach, aby uniknąć duplikatów) i przepisuje właściwość tak, by się do niego odwoływała. Parametry trasy również przenoszą enumy inline i tę samą akcję Wyodrębnij — zobacz Trasy i CRUD.

W sekcji Modele proszę wybrać model: jego właściwości wyświetlają się w tabeli (Właściwość, Typ, Flagi, Przykład). Proszę użyć Dodaj właściwość, aby utworzyć nową.

Właściwość może być typu:

  • prymityw: string, integer, number, boolean;
  • tablica (array<…>) lub mapa (map<…>) innego typu;
  • referencja do innego modelu;
  • referencja do enuma.

Dla typu string może Pan/Pani określić format: email, uuid, date, date-time, uri, hostname, ipv4, password lub byte.

Poza typem właściwość akceptuje wiele pól: Opis, Przykład, Wartość domyślna, Minimum / Maksimum, Długość min / Długość maks, Wzorzec (regex), Komunikat o deprecjacji oraz — dla referencji — zachowanie On delete.

Flagi kwalifikują właściwość i wyświetlają się w postaci odznak: wymagana, nullable, unikalna, niezmienna, searchable (przeszukiwalna — zobacz Trasy i CRUD), przestarzała, tylko do odczytu, tylko do zapisu oraz PII (dane osobowe).

Każdy model ma własne ustawienia:

  • Tożsamość — właściwość identyfikująca i jej strategia generowania (uuid, autoIncrement lub ulid). To właśnie ten identyfikator jest powiązany z parametrami {{id}} wygenerowanych tras.
  • Dziedziczenie — model może dziedziczyć po rodzicu; dziecko wyświetla właściwości rodzica jako tylko do odczytu, obok własnych.
  • Przechowywanie i cykl życia — oczekiwana wolumetria, znaczniki czasu (created / updated) oraz miękkie usuwanie (soft delete).

To również z tych ustawień uruchamia się Generuj CRUD oraz Generuj trasy wyszukiwania — opisane na następnej stronie.