Détecte les formes géométriques dans une image.
https://api.overcorp.fr
Les endpoints /upload et /feedback nécessitent une authentification. Les autres endpoints restent publics.
Crée un nouveau compte.
curl -X POST https://api.overcorp.fr/register \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com", "password": "password123"}'
{"id": 1, "email": "user@example.com", "token": "eyJhbG..."}
Authentifie un utilisateur existant.
curl -X POST https://api.overcorp.fr/login \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com", "password": "password123"}'
{"id": 1, "email": "user@example.com", "token": "eyJhbG..."}
Les tokens expirent après 24h.
Envoie une image pour analyse. Requiert un token dans le header Authorization.
curl -X POST -F "image=@photo.png" https://api.overcorp.fr/upload \
-H "Authorization: Bearer <token>"
{"id": 42}
Attend la fin du traitement et renvoie directement l'image annotée.
curl -X POST -F "image=@photo.png" "https://api.overcorp.fr/upload?wait=true" -o result.jpg
Récupère le résultat de l'analyse.
{
"completed": true,
"detections": [
{"class": "Rectangle", "confidence": 0.96, "bbox": [10, 20, 150, 200]},
{"class": "Cercle", "confidence": 0.91, "bbox": [200, 50, 300, 150]}
]
}
Si completed: false, l'analyse est encore en cours. Poll toutes les 500ms.
Formes détectées : Carre, Cercle, Hexagone, Octogone, Pentagone, Rectangle, Triangle
Retourne l'image avec les bounding boxes dessinées (JPG).
https://api.overcorp.fr/result/42
Permet d'indiquer si l'analyse a été correcte. Seul l'utilisateur ayant uploadé l'image peut donner son feedback.
curl -X POST https://api.overcorp.fr/feedback/42 \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"success": true}'
{"success": true}
Valeur success |
Signification |
|---|---|
true |
L'analyse était correcte |
false |
L'analyse était incorrecte |
Erreurs possibles :
403 : Vous n'êtes pas le propriétaire de cette image400 : L'analyse n'est pas encore terminéecurl -X POST -F "image=@photo.png" "https://api.overcorp.fr/upload?wait=true" \
-H "Authorization: Bearer <token>" -o result.jpg
const form = new FormData();
form.append("image", file);
// upload (avec token)
const { id } = await fetch("https://api.overcorp.fr/upload", {
method: "POST",
body: form,
headers: { "Authorization": "Bearer " + token }
}).then(r => r.json());
// poll
let res;
do {
await new Promise(r => setTimeout(r, 500));
res = await fetch(`https://api.overcorp.fr/status/${id}`).then(r => r.json());
} while (!res.completed);
console.log(res.detections);
// image annotée
const img = `https://api.overcorp.fr/result/${id}`;