Conventions, erreurs et sécurité
Construire un client OpenMDM robuste face aux erreurs, limites et opérations asynchrones.
URL de base
L’API publique est disponible à l’adresse https://api.pulse-xr.com.
Conservez l’URL de base dans la configuration de l’application. Elle ne doit jamais être concaténée à partir d’une saisie utilisateur.
Authentification
Le JWT OpenMDM représente une organisation. Envoyez-le avec :
Authorization: Bearer <token>- stockez le token côté serveur ou dans un gestionnaire de secrets ;
- ne l’incluez jamais dans une URL, un log ou un dépôt Git ;
- prévoyez son remplacement sans redéployer l’application ;
- ne supposez pas qu’un token d’une organisation peut lire les appareils d’une autre.
Statuts à traiter
| Statut | Interprétation | Comportement recommandé |
|---|---|---|
400 | corps ou paramètre invalide | corriger la requête, ne pas réessayer à l’identique |
401 | token absent ou invalide | remplacer le token avant de réessayer |
403 | opération interdite | vérifier l’organisation et les permissions |
404 | ressource absente | vérifier l’identifiant et l’environnement |
409 | conflit d’état | relire la ressource avant une nouvelle écriture |
429 | trop de requêtes | respecter Retry-After s’il est fourni, puis appliquer un backoff |
5xx | erreur temporaire du serveur | réessayer avec backoff et jitter, dans une limite définie |
const delay = Math.min(30_000, 500 * 2 ** attempt) + Math.random() * 250;Ne réessayez automatiquement une écriture que si votre traitement sait éviter les doublons. Pour une commande distante, relisez l’état de l’appareil avant de conclure à un échec.
Pagination
Les endpoints paginés utilisent principalement page et limit. Ne déduisez pas la fin uniquement à partir du nombre total : arrêtez-vous lorsque la page reçue contient moins d’éléments que la limite, ou utilisez les métadonnées renvoyées lorsqu’elles sont présentes.
Temps réel et SSE
Les flux GET /devices/{deviceId}/updates et GET /devices/{deviceId}/stream-status utilisent Server-Sent Events :
- ouvrez une seule connexion par appareil et par type de flux ;
- parsez chaque événement indépendamment ;
- fermez explicitement la connexion quand elle n’est plus utile ;
- reconnectez-vous avec backoff après une coupure involontaire ;
- relisez l’état courant après une reconnexion pour éviter un trou d’événements.
Compatibilité des clients
Un client robuste doit ignorer les champs JSON inconnus, traiter les champs optionnels comme absents et ne dépendre ni de l’ordre des propriétés ni d’un message d’erreur humain. Utilisez les codes HTTP et, lorsqu’il est présent, le champ d’erreur stable.
Pour le contrat exact d’une opération, consultez la référence API.
Cette page vous a-t-elle aidé ?
Dernière mise à jour le