v1
POST
Créer, Modifier et Supprimer des Enregistrements
Ces endpoints nécessitent la portée read-write ou admin.
POST /v1/records
Créer un nouvel enregistrement.
Corps de la requête
{
"form_id": "df7991ef-4a6f-48f4-9f1d-0fd4f53c9a77",
"project_id": "c328e46a-8fb9-41f1-a5f9-3dca9a894ab3",
"properties": {
"inspector_name": "Jane Smith",
"condition": "good"
},
"geometry": {
"type": "Point",
"coordinates": [-73.985, 40.758]
}
}
| Champ | Requis | Description |
|---|---|---|
form_id |
Oui | ID du formulaire cible dans votre organisation |
project_id |
Non | ID du projet (par défaut le projet du formulaire) |
properties |
Non | Objet JSON avec les valeurs des champs du formulaire |
geometry |
Non | Géométrie GeoJSON |
Exemple
curl -X POST \
-H "X-API-Key: mk_live_..." \
-H "Idempotency-Key: create-record-001" \
-H "Content-Type: application/json" \
-d '{
"form_id": "df7991ef-4a6f-48f4-9f1d-0fd4f53c9a77",
"properties": {"inspector_name": "Jane Smith", "condition": "good"}
}' \
"https://<ref>.supabase.co/functions/v1/api-gateway/v1/records"
PUT /v1/records/:id
Mettre à jour un enregistrement par ID. Incluez uniquement les champs que vous souhaitez modifier.
Corps de la requête
{
"properties": {
"condition": "needs_repair",
"notes": "Crack observed in north wall"
},
"priority": 2,
"workflow_state_id": "state_in_review"
}
| Champ | Description |
|---|---|
properties |
Remplace l'objet properties |
geometry |
Remplace la géométrie (null la supprime) |
assigned_to |
Assigner l'enregistrement à un ID utilisateur |
priority |
Définir la priorité |
workflow_state_id |
Définir l'état du workflow |
Exemple
curl -X PUT \
-H "X-API-Key: mk_live_..." \
-H "Idempotency-Key: update-record-001" \
-H "Content-Type: application/json" \
-d '{"properties": {"condition": "needs_repair"}}' \
"https://<ref>.supabase.co/functions/v1/api-gateway/v1/records/8ba2dac9-2f85-4b36-9b8f-2da8c9a7f4a0"
DELETE /v1/records/:id
Suppression douce de l'enregistrement.
curl -X DELETE \
-H "X-API-Key: mk_live_..." \
"https://<ref>.supabase.co/functions/v1/api-gateway/v1/records/8ba2dac9-2f85-4b36-9b8f-2da8c9a7f4a0"
Réponse de succès :
{
"ok": true,
"data": {
"id": "8ba2dac9-2f85-4b36-9b8f-2da8c9a7f4a0",
"deleted": true
}
}
Utilisez include_deleted=true sur l'endpoint de liste pour voir les enregistrements supprimés.
Détails d'idempotence
Les appels d'écriture avec POST et PUT supportent Idempotency-Key.
- Une tentative répétée avec le même payload rejoue la réponse mise en cache.
- Même clé avec un payload différent retourne
409 idempotency_key_conflict. - Même clé pendant que la première requête est en cours retourne
409 idempotency_in_progress.
Besoin d'aide avec l'API ? Contactez notre équipe support.