API Bibliothèque v1.2.0
1. Informations Générales⚓︎
- Base URL :
https://projects.evan-gerlandmolinier.fr/r506-bibliotheque/api - Encodage : UTF-8
- Content-Type :
application/json - Accept :
application/json
Authentification⚓︎
L'API utilise un système de Jeton de Session (Bearer Token) propriétaire.
- L'usager s'identifie via l'endpoint
/connexion. - Le serveur retourne un
api_token(valide 30 minutes). - Ce jeton doit être transmis dans chaque requête suivante.
Transmission du jeton : Dans le Header HTTP de chaque requête authentifiée :
Authorization: Bearer <votre_token_base64>
2. Endpoints d'Authentification⚓︎
2.1 Connexion (Login)⚓︎
Authentifie un usager et génère un jeton de session.
- URL :
/connexion - Méthode :
POST - Accès : Public
Paramètres (Body JSON) :
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
identifiant |
String | Oui | Identifiant ou Email de l'usager |
password |
String | Oui | Mot de passe en clair |
Réponse (Succès 200 OK) :
{
"success": true,
"message": "Connexion réussie.",
"api_token": "AbCdE...", // Jeton à conserver pour la session
"usager": {
"id": 42,
"nom": "JACQUOT",
"prenom": "Pierre-Alain"
}
}
2.2 Déconnexion (Logout)⚓︎
Invalide le jeton de session actuel côté serveur.
- URL :
/deconnexion - Méthode :
DELETE - Accès : Authentifié
Réponse (Succès 200 OK) :
{
"success": true
}
3. Endpoints Profil Usager⚓︎
3.1 Consulter le profil⚓︎
Récupère les informations personnelles de l'usager connecté.
- URL :
/profil - Méthode :
GET - Accès : Authentifié
Réponse (Succès 200 OK) :
{
"success": true,
"profil": {
"nom": "JACQUOT",
"prenom": "Pierre-Alain",
"email": "pierre-alain.jacquot@goat.com",
"identifiant": "the_goat",
"created_at": "2023-09-01T10:00:00.000000Z",
"blocage": 0
}
}
3.2 Mettre à jour le profil⚓︎
Permet à l'usager de modifier ses informations et son mot de passe.
- URL :
/profil - Méthode :
PATCH - Accès : Authentifié
Paramètres (Body JSON) :
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
nom |
String | Oui | |
prenom |
String | Oui | |
email |
String | Oui | Doit être unique |
identifiant |
String | Oui | Doit être unique |
password |
String | Non | Min. 8 caractères. Laisser vide pour ne pas changer. |
password_confirmation |
String | Oui (si password présent) | Doit être identique au password. |
Réponse (Succès 200 OK) :
{
"success": true,
"message": "Profil mis à jour avec succès.",
"usager": {
"nom": "JACQUOT",
"prenom": "Pierre-Alain"
}
}
4. Endpoints Emprunts & Ouvrages⚓︎
4.1 Liste des emprunts⚓︎
Récupère la liste des ouvrages actuellement empruntés par l'usager.
- URL :
/emprunts - Méthode :
GET - Accès : Authentifié
Réponse (Succès 200 OK) :
{
"success": true,
"emprunts": [
{
"exemplaire_id": 105,
"titre": "Le Petit Prince",
"auteur": "Antoine de Saint-Exupéry",
"image_url": "http://.../images/le-petit-prince.jpg",
"date_retour_prevue": "2024-02-15",
"est_en_retard": false,
"deja_renouvele": false
},
{
"exemplaire_id": 202,
"titre": "1984",
"auteur": "George Orwell",
"image_url": null,
"date_retour_prevue": "2023-12-01",
"est_en_retard": true,
"deja_renouvele": true
}
]
}
4.2 Renouveler un emprunt⚓︎
Prolonge la date de retour d'un mois. Possible une seule fois par exemplaire.
- URL :
/emprunts/{id}/renouvellement - Méthode :
PATCH - Accès : Authentifié
Paramètres (URL) :
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
id |
Int | Oui | ID de l'exemplaire concerné |
Réponse (Succès 200 OK) :
{
"success": true,
"message": "Renouvelé.",
"nouvelle_date": "2024-03-15"
}
5. Gestion des Erreurs⚓︎
L'API retourne des codes HTTP standards accompagnés d'un message JSON explicatif.
Structure d'erreur⚓︎
{
"error": "code_erreur_interne",
"message": "Message lisible par l'humain."
}
Codes HTTP fréquents⚓︎
| Code HTTP | Signification | Cause probable / Action |
|---|---|---|
| 400 | Bad Request | Requête mal formée ou règle métier non respectée (ex: ouvrage déjà renouvelé). |
| 401 | Unauthorized | Jeton manquant, invalide ou expiré (Session time-out > 30min). Action client : Rediriger vers Login. |
| 403 | Forbidden | Compte usager bloqué par l'administration. |
| 404 | Not Found | Ressource introuvable (ex: ID exemplaire incorrect). |
| 422 | Unprocessable Entity | Erreur de validation des champs (email invalide, mot de passe trop court, etc.). |
| 500 | Internal Server Error | Erreur serveur inattendue. |
Codes erreurs spécifiques (Champ "error")⚓︎
invalid_credentials: Couple identifiant/mot de passe incorrect.account_locked: L'usager est banni.token_expired: Le jeton n'est plus valide (délai dépassé).already_renewed: Tentative de renouveler un ouvrage une seconde fois.
Auteur : Evan GERLAND--MOLINIER