Aller au contenu

Modèles, enums et propriétés

Les modèles décrivent les données de votre API. Un modèle porte des propriétés typées, et ces propriétés peuvent référencer d’autres modèles ou des enums.

La section Modèles : la liste des propriétés d'un modèle avec leur type, leurs drapeaux et un exemple

Un enum est un ensemble de valeurs fermé (par exemple un statut draft / published / archived). Un design les gère de deux façons :

  • Enums nommés — réutilisables, de premier niveau. Depuis la section Enums, utilisez Ajouter un enum, donnez-lui un nom et une description, puis Ajouter une valeur pour chaque entrée. Une propriété (ou un paramètre de route) le référence ensuite par son type.
  • Enums inline — un ensemble anonyme déclaré directement sur une propriété. Sur une propriété string / integer / number, un éditeur de puces Valeurs d’énumération vous laisse lister les valeurs autorisées sur place, sans créer de type nommé.

Quand un enum inline mérite d’être partagé, Extraire vers un enum nommé le promeut : il crée l’enum nommé (en réutilisant un enum existant aux mêmes valeurs, pour éviter les doublons) et réécrit la propriété pour qu’elle le référence. Les paramètres de route portent aussi des enums inline et la même action Extraire — voir Routes & CRUD.

Dans la section Modèles, sélectionnez un modèle : ses propriétés s’affichent dans un tableau (Propriété, Type, Drapeaux, Exemple). Utilisez Ajouter une propriété pour en créer une.

Une propriété peut être de type :

  • un primitif : string, integer, number, boolean ;
  • un tableau (array<…>) ou une map (map<…>) d’un autre type ;
  • une référence vers un autre modèle ;
  • une référence vers un enum.

Pour un string, vous pouvez préciser un format : email, uuid, date, date-time, uri, hostname, ipv4, password ou byte.

Au-delà du type, une propriété accepte de nombreux champs : Description, Exemple, Valeur par défaut, Minimum / Maximum, Longueur min / Longueur max, Motif (regex), Message de dépréciation, et — pour les références — un comportement On delete.

Des drapeaux qualifient la propriété et s’affichent sous forme de badges : requis, nullable, unique, immuable, searchable (interrogeable — voir Routes & CRUD), déprécié, lecture seule, écriture seule, et PII (donnée personnelle).

Chaque modèle a des réglages propres :

  • Identité — la propriété identifiante et sa stratégie de génération (uuid, autoIncrement ou ulid). C’est cet identifiant qui est relié aux paramètres {{id}} des routes générées.
  • Héritage — un modèle peut hériter d’un parent ; l’enfant affiche les propriétés du parent en lecture seule, en plus des siennes.
  • Stockage & cycle de vie — volumétrie attendue, horodatages (created / updated) et suppression douce (soft delete).

C’est aussi depuis ces réglages que l’on lance Générer le CRUD et Générer les routes de recherche — décrits sur la page suivante.