Recherche de plusieurs appareils

📡 POST /devices/lookup

Permet de récupérer plusieurs appareils à partir de leurs identifiants en une seule requête. Cette route est utile pour obtenir en batch les informations de plusieurs casques Pulse ou terminaux Android déjà enregistrés dans la base de données.


🧭 Endpoint

POST /devices/lookup
Content-Type: application/json

🧱 Description

Cette route accepte une liste d’identifiants (ids) et renvoie tous les appareils correspondants. Les identifiants invalides ou introuvables sont signalés séparément dans la réponse, mais ne bloquent pas la requête, sauf si le mode strict est activé.


🧩 Body JSON

Champ
Type
Requis
Description

ids

string[]

✅ Oui

Tableau des identifiants MongoDB des appareils à récupérer.

projection

string[]

❌ Non

Liste optionnelle des champs à inclure dans la réponse (ex. ["name", "brand"]). Si non fourni, tous les champs sont renvoyés.

strict

boolean

❌ Non

Si true, renvoie une erreur 404 si un ou plusieurs IDs sont invalides ou manquants. Par défaut false.


🧠 Règles de validation

  • ids doit être un tableau non vide.

  • Maximum 1000 IDs par requête.

  • Chaque id doit être un identifiant MongoDB valide (24 caractères hexadécimaux).

  • Si strict est true, la requête échoue si un seul ID est invalide ou introuvable.


🧾 Exemple de requête


🧩 Exemple de réponse (succès)


🚫 Exemple de réponse (mode strict activé)

📎 Code HTTP : 404 Not Found


📦 Exemple de réponse (erreur serveur)

📎 Code HTTP : 500 Internal Server Error


🧮 Champs de la réponse (succès)

Champ
Type
Description

requested

number

Nombre total d’IDs envoyés dans la requête.

returned

number

Nombre d’appareils effectivement trouvés.

invalidIds

string[]

Liste des identifiants invalides (non conformes à un ObjectId MongoDB).

notFoundIds

string[]

Liste des identifiants valides mais non trouvés dans la base.

results

Device[]

Liste des objets Device trouvés (structure dépend du modèle Device).


🧱 Structure type d’un objet Device

(Les champs exacts peuvent varier selon ton modèle Mongoose)


🧰 Notes techniques

  • ⚙️ Méthode HTTP : POST

  • 📦 Consommation : JSON

  • 🕒 Latence moyenne : dépend du nombre d’IDs (≈ 10 ms / 100 IDs)

  • 🔒 Authentification : Requiert un token valide (selon ton middleware auth).

  • 💾 Optimisation MongoDB : Utilise un $in unique avec projection optionnelle et .lean() pour des performances optimales.


🧭 Exemples d’usages côté client

En JavaScript (Fetch API)

Mis à jour