Documentation Mentions légales Confidentialité Admin

Documentation de l'API

ESTARA - tout pour préparer ta sortie en montagne : sécurité, préparation & communauté. Auth : JWT (header Authorization: Bearer <token>) · Format : JSON.

Base URL : https://back-estara.pierrenogaro.com

Erreurs communes : 401 Authentification requise · 404 non trouvé · 403 accès refusé · 400 requête invalide.

Organisation de la collection Postman ESTARA

Toute mon organisation de tests de l'API se fait sur Postman : les routes sont regroupées en dossiers par ressource, comme sur la capture ci-dessus. Chaque route ci-dessous est illustrée par une capture Postman de la requête et de sa réponse.

Authentification & Inscription

POST /api/register : Créer un compte
POST /api/register dans Postman
POST /api/login_check : Se connecter (JWT)
POST /api/login_check dans Postman
POST /api/complete-profile : Onboarding : infos profil
POST /api/complete-profile dans Postman
POST /api/choose-sports : Onboarding : sports
POST /api/choose-sports dans Postman
POST /api/choose-role : Onboarding : rôle
POST /api/choose-role dans Postman
POST /api/complete-profile-questions : Onboarding : questionnaire
POST /api/complete-profile-questions dans Postman
POST /api/forgot-password : Demander un code
POST /api/forgot-password dans Postman
POST /api/reset-password : Réinitialiser
POST /api/reset-password dans Postman

Profil & utilisateurs

GET /api/profile : Mon profil complet
GET /api/profile dans Postman
PUT PATCH /api/profile : Modifier mon profil
PUT /api/profile dans Postman
POST /api/profile/avatar : Uploader mon avatar (multipart)
POST /api/profile/avatar dans Postman
GET /api/profile/posts : Mes publications
GET /api/profile/posts dans Postman
DELETE /api/account : Supprimer mon compte
DELETE /api/account dans Postman

Requête volontairement non exécutée : cet appel supprime définitivement le compte et ses données (droit à l'effacement RGPD). La capture montre la requête prête à l'envoi, mais je ne l'ai pas lancée afin de conserver le compte de test.

GET /api/users/search?q=marie : Rechercher des utilisateurs
GET /api/users/search?q=marie dans Postman
GET /api/users/{id} : Profil public d'un utilisateur
GET /api/users/{id} dans Postman
GET /api/users/{id}/posts : Publications d'un utilisateur
GET /api/users/{id}/posts dans Postman

Sommets

GET /api/summits : Liste des sommets
GET /api/summits dans Postman
GET /api/summits/{id} : Détail d'un sommet
GET /api/summits/{id} dans Postman
POST /api/create/summit : Créer Admin
POST /api/create/summit dans Postman
POST PUT /api/edit/summit/{id} : Modifier Admin
POST /api/edit/summit/{id} dans Postman
DELETE /api/delete/summit/{id} : Supprimer Admin
DELETE /api/delete/summit/{id} dans Postman

Recherche de pics (OSM / Overpass)

POST /api/summits/peaks : Recherche par paliers
POST /api/summits/peaks dans Postman
GET /api/summits/peaks/details?wikidata=&name=&altitude= : Détails enrichis
GET /api/summits/peaks/details?wikidata=&name=&altitude= dans Postman
GET /api/peaks/image?url= : Proxy d'image
GET /api/peaks/image?url= dans Postman

Météo, géocodage & refuges

POST /api/weather : Météo d'un point
POST /api/weather dans Postman
GET /api/geocoding/geocode?address=Chamonix : Adresse → coordonnées
GET /api/geocoding/geocode?address=Chamonix dans Postman
GET /api/geocoding/reverse?lat=&lng= : Coordonnées → adresse
GET /api/geocoding/reverse?lat=&lng= dans Postman
GET /api/refuges?lat=&lng= : Refuges proches
GET /api/refuges?lat=&lng= dans Postman

Équipement

GET /api/equipments : Mon équipement
GET /api/equipments dans Postman
GET /api/equipments/{id} : Détail
GET /api/equipments/{id} dans Postman
POST /api/create/equipment : Ajouter
POST /api/create/equipment dans Postman
PUT /api/edit/equipment/{id} : Modifier
PUT /api/edit/equipment/{id} dans Postman
DELETE /api/delete/equipment/{id} : Supprimer
DELETE /api/delete/equipment/{id} dans Postman
POST /api/equipments/{id}/photo : Uploader une photo (multipart)
POST /api/equipments/{id}/photo dans Postman

Sorties planifiées

GET /api/planned-outings : Mes sorties
GET /api/planned-outings dans Postman
POST /api/planned-outings : Planifier
POST /api/planned-outings dans Postman
DELETE /api/planned-outings/{id} : Annuler
DELETE /api/planned-outings/{id} dans Postman
POST /api/planned-outings/{id}/equipment/{equipmentId} : Ajouter du matériel
POST /api/planned-outings/{id}/equipment/{equipmentId} dans Postman
DELETE /api/planned-outings/{id}/equipment/{equipmentId} : Retirer du matériel
DELETE /api/planned-outings/{id}/equipment/{equipmentId} dans Postman

Réservations de guide

GET /api/guides : Liste des guides
GET /api/guides dans Postman
POST /api/guide-reservations : Réserver un guide
POST /api/guide-reservations dans Postman
GET /api/guide-reservations/mine : Mes réservations (alpiniste)
GET /api/guide-reservations/mine dans Postman
GET /api/guide-reservations/received : Reçues (guide)
GET /api/guide-reservations/received dans Postman
PATCH /api/guide-reservations/{id}/accept : Accepter (guide)
PATCH /api/guide-reservations/{id}/accept dans Postman
PATCH /api/guide-reservations/{id}/decline : Refuser (guide)
PATCH /api/guide-reservations/{id}/decline dans Postman

400 attendu ici : une réservation déjà traitée (acceptée ou refusée) ne peut plus être modifiée — « Cette demande a déjà été traitée ». C'est une règle métier, et la capture montre ce contrôle qui fonctionne.

DELETE /api/guide-reservations/{id} : Annuler
DELETE /api/guide-reservations/{id} dans Postman

Publications

GET /api/posts : Toutes les publications
GET /api/posts dans Postman
GET /api/posts/{id} : Détail
GET /api/posts/{id} dans Postman
POST /api/create/post : Créer (multipart)
POST /api/create/post dans Postman
PUT /api/edit/post/{id} : Modifier
PUT /api/edit/post/{id} dans Postman
DELETE /api/delete/post/{id} : Supprimer
DELETE /api/delete/post/{id} dans Postman
POST /api/posts/{id}/like : Liker
POST /api/posts/{id}/like dans Postman
DELETE /api/posts/{id}/like : Unliker
DELETE /api/posts/{id}/like dans Postman

Commentaires

GET /api/comments : Tous les commentaires
GET /api/comments dans Postman
GET /api/comments/{id} : Détail
GET /api/comments/{id} dans Postman
POST /api/create/comment : Créer (ou répondre)
POST /api/create/comment dans Postman
PUT /api/edit/comment/{id} : Modifier
PUT /api/edit/comment/{id} dans Postman
DELETE /api/delete/comment/{id} : Supprimer
DELETE /api/delete/comment/{id} dans Postman
POST /api/comments/{id}/like : Liker
POST /api/comments/{id}/like dans Postman
DELETE /api/comments/{id}/like : Unliker
DELETE /api/comments/{id}/like dans Postman

Système de suivi

POST /api/users/{id}/follow : Suivre
POST /api/users/{id}/follow dans Postman
DELETE /api/users/{id}/follow : Ne plus suivre
DELETE /api/users/{id}/follow dans Postman
GET /api/users/{id}/follow/status : Statut de suivi
GET /api/users/{id}/follow/status dans Postman
GET /api/profile/followers : Mes abonnés
GET /api/profile/followers dans Postman
GET /api/profile/following : Mes abonnements
GET /api/profile/following dans Postman
GET /api/users/{id}/followers : Abonnés d'un utilisateur
GET /api/users/{id}/followers dans Postman
GET /api/users/{id}/following : Abonnements d'un utilisateur
GET /api/users/{id}/following dans Postman

Messagerie (temps réel - Mercure)

POST /api/messages : Envoyer un message
POST /api/messages dans Postman
GET /api/conversations : Mes conversations
GET /api/conversations dans Postman
GET /api/conversations/{userId} : Messages d'une conversation
GET /api/conversations/{userId} dans Postman
POST /api/conversations/{userId}/read : Marquer comme lu
POST /api/conversations/{userId}/read dans Postman
DELETE /api/conversations/{partnerId} : Supprimer une conversation
DELETE /api/conversations/{partnerId} dans Postman
PATCH /api/messages/{id} : Modifier un message
PATCH /api/messages/{id} dans Postman
DELETE /api/messages/{id} : Supprimer un message
DELETE /api/messages/{id} dans Postman
POST /api/messages/typing : Signaler « en train d'écrire »
POST /api/messages/typing dans Postman
GET /api/messages/token : Jeton Mercure
GET /api/messages/token dans Postman

EstaraAI

POST /api/chat : Poser une question
POST /api/chat dans Postman

Back-office admin (HTML, hors API JSON) Admin

GET/admin/login · /admin/logoutConnexion admin (formulaire, CSRF)
GET/adminDashboard
GET/admin/usersListe · /{id}, /{id}/set-role, /{id}/toggle-admin, /{id}/delete
GET/admin/postsListe · /{id}/delete
GET/admin/commentsListe · /{id}/delete
GET/admin/summitsListe · /new, /{id}/edit, /{id}/delete
GET/admin/outingsListe · /{id}/delete
GET/admin/reservationsListe · /{id}/cancel

Pages publiques (HTML)

GET/Accueil
GET/docsCette page
GET/privacy · /mentions-legalesPages légales