Valider le prompt utilisateur avec Zod pour Replicate
Apprends à sécuriser ton API Replicate en validant le prompt utilisateur avec Zod et TypeScript. Évite erreurs serveur et appels payants inutilement.
Pourquoi valider le prompt utilisateur
Avant d’appeler l’API de génération d’images, on vérifie que le prompt envoyé par l’utilisateur
est bien présent et de type string.
On évite ainsi :
- les erreurs serveur inutiles ;
- les appels API payants ou limités pour rien ;
- les messages d’erreur obscurs côté front.
Zod offre une syntaxe courte et typée pour cette validation.
Définir le schéma Zod
1import { z } from "zod"23export const GenerateImageSchema = z.object({4prompt: z.string({5required_error: "Un prompt est requis pour générer une image",6}),7})
Explications ligne par ligne :
- On importe
zdepuis le package Zod. GenerateImageSchemaest un objet Zod.- La propriété
prompt:- doit être une
string; - affiche le message custom "Un prompt est requis pour générer une image" si l’utilisateur l’oublie.
- doit être une
Note
En gardant toute la logique de validation côté serveur, on évite la duplication de règles entre front et back.
Quiz
Testez vos connaissances avec 4 questions
Quel est l’objectif principal du schéma Zod nommé "GenerateImageSchema" dans la leçon ?
Quelle conséquence citedans la leçon est évitée grâce à la validation du prompt avant l’appel API ?
Dans le schéma Zod, quel message personnalisé est retourné si le champ « prompt » est manquant ?
Pourquoi est-il recommandé de conserver toute la logique de validation côté serveur, selon la leçon ?