Supprimer un utilisateur
Ce guide décrit le processus de suppression d'un utilisateur existant de la plateforme Stonal à l'aide de l'API.
Prérequis
- Un jeu valide d'identifiants API
- Un jeton d'accès valide (voir : Obtenir un jeton)
- Un code d'organisation
Étape 1 : Récupérer l'UID de l'utilisateur
Avant de supprimer un utilisateur, recherchez-le pour obtenir son UID.
Voir : Trouver un utilisateur existant
GET /v2/organizations/DEMO/users?pageNumber=1&pageSize=10&q=john.doe@example.com
Si l'utilisateur existe, vous recevrez une réponse 200 avec les détails de l'utilisateur, y compris son UID.
Étape 2 : Supprimer l'utilisateur
Une fois que vous disposez de l'UID de l'utilisateur, vous pouvez procéder à la suppression.
Voir : Spécification de l'API
DELETE /v2/organizations/DEMO/users/019619df-4768-76b7-81e3-2c56d374df46
- Python
- PHP
- JavaScript
- Java
- Go
- C#
import requests
BASE_URL = "https://api.stonal.io/users"
TOKEN = "<access_token>"
resp = requests.delete(
f"{BASE_URL}/v2/organizations/DEMO/users/019619df-4768-76b7-81e3-2c56d374df46",
headers={"Authorization": f"Bearer {TOKEN}"},
)
print(resp.status_code)
<?php
$baseUrl = "https://api.stonal.io/users";
$token = "<access_token>";
$ch = curl_init("$baseUrl/v2/organizations/DEMO/users/019619df-4768-76b7-81e3-2c56d374df46");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => ["Authorization: Bearer $token"],
]);
$response = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE) . PHP_EOL;
curl_close($ch);
const baseUrl = "https://api.stonal.io/users";
const token = "<access_token>";
const res = await fetch(
`${baseUrl}/v2/organizations/DEMO/users/019619df-4768-76b7-81e3-2c56d374df46`,
{
method: "DELETE",
headers: { Authorization: `Bearer ${token}` },
}
);
console.log(res.status);
import java.net.URI;
import java.net.http.*;
String baseUrl = "https://api.stonal.io/users";
String token = "<access_token>";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(baseUrl + "/v2/organizations/DEMO/users/019619df-4768-76b7-81e3-2c56d374df46"))
.header("Authorization", "Bearer " + token)
.DELETE()
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
package main
import (
"fmt"
"net/http"
)
func main() {
baseURL := "https://api.stonal.io/users"
token := "<access_token>"
req, _ := http.NewRequest("DELETE", baseURL+"/v2/organizations/DEMO/users/019619df-4768-76b7-81e3-2c56d374df46", nil)
req.Header.Set("Authorization", "Bearer "+token)
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println(resp.StatusCode)
}
using System.Net.Http;
using System.Net.Http.Headers;
var baseUrl = "https://api.stonal.io/users";
var token = "<access_token>";
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
var response = await client.DeleteAsync($"{baseUrl}/v2/organizations/DEMO/users/019619df-4768-76b7-81e3-2c56d374df46");
Console.WriteLine((int)response.StatusCode);
Paramètres de chemin :
organizationCode: Votre code client (par ex. « DEMO »)uid: UID de l'utilisateur à supprimer (par ex. « 019619df-4768-76b7-81e3-2c56d374df46 »)
Réponses possibles :
- 204 : L'utilisateur a été supprimé avec succès
- 404 : L'utilisateur à supprimer n'existe pas
- 409 : L'utilisateur ne peut pas être supprimé en raison d'un conflit (par exemple, une contrainte référentielle)
Notes
- L'opération de suppression est permanente et ne peut pas être annulée
- L'UID de l'utilisateur doit être obtenu via une recherche préalable ou stocké comme identifiant externe de votre côté
Gestion des erreurs
Les API Stonal renvoient une enveloppe d'erreur cohérente : { "type", "title", "detail" }. Les échecs de validation (422) remplacent detail par un tableau errors détaillant chaque champ.
| Statut | type | Signification |
|---|---|---|
400 | tag:InvalidBody / tag:InvalidContentType | Le corps de la requête ou le type de contenu est invalide |
401 | tag:Unauthenticated | Jeton d'authentification manquant ou expiré |
403 | tag:ForbiddenAccess | Le jeton n'a pas la permission d'accéder à cette ressource |
422 | tag:ValidationError | Un ou plusieurs champs ont échoué à la validation (voir errors[]) |
500 | tag:InternalError | Erreur serveur inattendue |
{
"type": "tag:ValidationError",
"title": "Invalid request",
"errors": [
{ "field": "email", "detail": "Email is required" }
]
}