1-3 Créer une entrée
Pour créer un projet, le format d'une requête est le suivant:
POST https://{id-projet-supabase}.supabase.co/rest/v1/projets
Assurez-vous de remplacer l'identifiant de votre projet, {id-projet-supabase}
, par le vôtre.
Créer et exécuter une nouvelle requête
Créez une nouvelle requête de type POST
, à l'URL de projets, tout en vous assurant d'entrer votre clé d'API dans une entrée d'en-tête apiKey
.
Renseigner le Body
de la requête
Pour créer un projet, il est nécessaire de fournir quelques informations, dont à tout de moins le nom et la description de ce dernier!
Pour ce faire, on utilise la portion body
de la requête HTTP
. Postman peut nous aider à renseigner cette portion de la requête.
-
Sous l'onglet
Body
de la requête, sélectionnezraw
etJSON
comme type de données. -
Entrez, au format JSON, les données à soumettre. Le format est le suivant:
{
"nom": "Nouveau projet",
"description": "Un nouveau projet créé par API!"
}infoLors d'un envoi de données à Supabase, le contenu du corps de la requête (body) doit être un objet
JSON
contenant les données requises des différentes colonnes. -
Appuyez sur
Send
-
Vous devriez recevoir une confirmation que le projet a bien été créé avec un retour
HTTP
ayant le code201 (Created)
. -
Vous pouvez même vérifier dans Supabase qu'une nouvelle entrée a été créée! 🎉
Obtenir l'entrée créée
Si vous avez remarqué, lorsque vous faites une requête POST
, le retour est vide, il n'inclut pas l'objet JSON créé.
Pour retourner l'objet JSON nouvellement créé, vous devez ajouter l'en-tête suivante: Prefer: return=representation
Vous recevrez ainsi un code de retour 201
si le tout est un succès, en plus de l'objet créé!
Cependant, l'entrée est retournée sous forme de tableau.
Tout comme dans la section précédente, vous pouvez ajouter l'en-tête Accept: application/vnd.pgrst.object+json
Pour cela, à partir de l'onglet Headers
, décochez l'option par défaut Accept
et créez-en une supplémentaire avec la valeur application/vnd.pgrst.object+json
.
Erreurs potentielles
Champs requis
Certains champs sont requis lors de la création. Par exemple, un nom doit être fourni au projet.
Essayons la même requête, sans fournir de nom. Dans ce cas, vous obtiendrez 400 (Bad Request)
comme code HTTP et une brève description de l'erreur.
L'erreur peut vous aider. Par exemple:
{
"code": "23502",
"details": "Failing row contains (5, 2025-06-09 15:38:20.063116+00, 2025-06-09 15:38:20.063116+00, null, Un nouveau projet créé par API!, null).",
"hint": null,
"message": "null value in column \"nom\" of relation \"projets\" violates not-null constraint"
}
La portion message
est particulièrement utile puisqu'elle vous indique qu'une valeur null
(vide) a été envoyée et cela n'est pas autorisé, il doit obligatoirement avoir un nom au projet pour le créer.
Erreur de validation
Si jamais vous tentez de soumettre un format de données non conforme à ce qui est attendu, vous recevrez une réponse Bad request
.
Par exemple, modifier pour un nom vide:
{
"nom": "",
"description": "Un nouveau projet créé par API!"
}
Retournerait:
HTTP Code: 400
Réponse:
{
"code": "23514",
"details": "Failing row contains (8, 2025-06-09 18:58:41.413555+00, 2025-06-09 18:58:41.413555+00, , Un nouveau projet créé par API!, null).",
"hint": null,
"message": "new row for relation \"projets\" violates check constraint \"projets_nom_check\""
}