Lewati ke konten

Model, enum, dan properti

Model mendeskripsikan data API Anda. Sebuah model membawa properti bertipe, dan properti-properti ini dapat mereferensikan model lain atau enum.

Bagian Model: daftar properti sebuah model beserta tipe, penanda, dan sebuah contoh

Sebuah enum adalah kumpulan nilai tertutup (misalnya sebuah status draft / published / archived). Sebuah desain mengelolanya dengan dua cara:

  • Enum bernama — dapat dipakai ulang, tingkat atas. Dari bagian Enum, gunakan Tambah enum, beri nama dan deskripsi, lalu Tambah nilai untuk setiap entri. Sebuah properti (atau parameter rute) kemudian mereferensikannya berdasarkan tipe.
  • Enum inline — kumpulan anonim yang dideklarasikan langsung pada sebuah properti. Pada properti string / integer / number, sebuah editor chip Nilai enumerasi memungkinkan Anda mendaftar nilai yang diizinkan di tempat itu juga, tanpa membuat tipe bernama.

Ketika sebuah enum inline layak dibagikan, Ekstrak ke enum bernama mempromosikannya: ia membuat enum bernama (dengan memakai ulang enum yang sudah ada dengan nilai yang sama, untuk menghindari duplikat) dan menulis ulang properti agar mereferensikannya. Parameter rute juga membawa enum inline dan tindakan Ekstrak yang sama — lihat Rute & CRUD.

Di bagian Model, pilih sebuah model: propertinya ditampilkan dalam sebuah tabel (Properti, Tipe, Penanda, Contoh). Gunakan Tambah properti untuk membuat satu.

Sebuah properti dapat bertipe:

  • sebuah primitif: string, integer, number, boolean;
  • sebuah array (array<…>) atau sebuah map (map<…>) dari tipe lain;
  • sebuah referensi ke model lain;
  • sebuah referensi ke sebuah enum.

Untuk sebuah string, Anda dapat menentukan sebuah format: email, uuid, date, date-time, uri, hostname, ipv4, password, atau byte.

Selain tipe, sebuah properti menerima banyak bidang: Deskripsi, Contoh, Nilai bawaan, Minimum / Maksimum, Panjang min / Panjang maks, Pola (regex), Pesan usang, dan — untuk referensi — sebuah perilaku On delete.

Penanda memenuhi syarat properti dan ditampilkan sebagai lencana: wajib, nullable, unik, immutable, searchable (dapat dikueri — lihat Rute & CRUD), usang, baca-saja, tulis-saja, dan PII (data pribadi).

Setiap model memiliki pengaturan tersendiri:

  • Identitas — properti pengenal dan strategi pembuatannya (uuid, autoIncrement, atau ulid). Pengenal inilah yang dihubungkan ke parameter {{id}} pada rute yang dihasilkan.
  • Pewarisan — sebuah model dapat mewarisi dari sebuah induk; anaknya menampilkan properti induk dalam baca-saja, selain propertinya sendiri.
  • Penyimpanan & siklus hidup — perkiraan volume, penanda waktu (created / updated) dan penghapusan lunak (soft delete).

Dari pengaturan inilah pula Hasilkan CRUD dan Hasilkan rute pencarian dijalankan — dijelaskan di halaman berikutnya.