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.

1 min read

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

src/schemas/generateImage.ts
1
import { z } from "zod"
2
3
export const GenerateImageSchema = z.object({
4
prompt: z.string({
5
required_error: "Un prompt est requis pour générer une image",
6
}),
7
})

Explications ligne par ligne :

  1. On importe z depuis le package Zod.
  2. GenerateImageSchema est un objet Zod.
  3. 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.

Quiz

Testez vos connaissances avec 4 questions

1Question 1 sur 4

Quel est l’objectif principal du schéma Zod nommé "GenerateImageSchema" dans la leçon ?

2Question 2 sur 4

Quelle conséquence citedans la leçon est évitée grâce à la validation du prompt avant l’appel API ?

3Question 3 sur 4

Dans le schéma Zod, quel message personnalisé est retourné si le champ « prompt » est manquant ?

4Question 4 sur 4

Pourquoi est-il recommandé de conserver toute la logique de validation côté serveur, selon la leçon ?