Skip to main content

[Admin] Créer une Application Cliente

Cette requête permet de créer une nouvelle application cliente autorisée à interagir avec l'API Horsplace.

Méthode : POST

URL : {{baseUrl}}/api/client_apps

En-têtes :

CléValeurDescription
X-API-KEY{{apiKey}}Votre clé d'API unique (d'administration).
Content-Typeapplication/jsonType de contenu de la requête.

Corps de la requête (JSON) :

{
"name": "Nouvelle Application Partenaire Delta",
"permissions": [ // Permissions accordées à cette application pour accéder à VOTRE API proxy
"horstable.template.list",
"horstable.label.update"
],
"roles": ["ROLE_PARTNER"], // Rôles Symfony pour cette application
"groupNames": ["groupe_marketing", "groupe_technique"], // Groupes de permissions personnalisés
"horstableUsername": "user_horstable_delta", // Identifiant pour l'API Horsplace distante
"plainHorsplacePassword": "password_horstable_delta", // Mot de passe pour l'API Horsplace distante
"horstableUrl": "https://api.horstable.com/partenaire_delta", // URL de base de l'API Horsplace pour ce client
"expiresAt": "2026-12-31T23:59:59+00:00" // Optionnel: date d'expiration de la clé d'API
}

Note : name est obligatoire. permissions, roles, groupNames, horstableUsername, plainHorsplacePassword, horstableUrl, et expiresAt sont des champs importants pour configurer l'accès et la connexion de l'application cliente à l'API Horsplace distante via ce proxy.

Réponses possibles :

  • 201 Created: Application cliente créée avec succès. Les détails de l'application, y compris sa propre clé d'API générée, sont retournés.
  • 400 Bad Request: La requête est malformée ou des informations sont manquantes.
  • 422 Unprocessable Entity: Les données fournies ne sont pas valides (par exemple, nom déjà utilisé, permissions invalides).

Exemple de réponse (Succès - 201) :

{
"id": "client_app_uuid_789",
"name": "Nouvelle Application Partenaire Delta",
"apiKey": "generated_api_key_for_delta", // Clé d'API générée pour cette application cliente
"permissions": [
"horstable.template.list",
"horstable.label.update"
],
"roles": ["ROLE_PARTNER", "ROLE_API"],
"groupNames": ["groupe_marketing", "groupe_technique"],
"horstableUrl": "https://api.horstable.com/partenaire_delta",
// horstableUsername et horstablePassword ne sont généralement pas retournés pour des raisons de sécurité
"expiresAt": "2026-12-31T23:59:59+00:00",
"createdAt": "YYYY-MM-DDTHH:mm:ssZ",
"updatedAt": "YYYY-MM-DDTHH:mm:ssZ"
// isActive est généralement géré par le système et non retourné ici, ou est implicitement true à la création
}