Documentation API Reviews
Service JSON pour récupérer les avis Google Places. Chaque site client appelle cette API puis affiche les données avec son propre HTML, CSS et logique métier.
Introduction
Ce domaine expose uniquement une API HTTP (pas d’interface utilisateur imposée pour vos visiteurs finaux). Vous intégrez les endpoints ci-dessous depuis votre backend ou, si l’origine est autorisée en CORS, depuis le navigateur.
Authentification
Les routes /api/reviews exigent un en-tête HTTP
x-api-key contenant la clé fournie lors de la création d’un client
(rw_…). La clé API Google Places reste côté serveur et n’est jamais
envoyée au navigateur.
Référence HTTP
GET /api/health
Vérifie que le service répond. Aucune authentification.
curl -sS "https://reviews.rentasite.fr/api/health"
POST /api/clients
Crée un enregistrement client et retourne une apiKey.
curl -sS -X POST "https://reviews.rentasite.fr/api/clients" \
-H "Content-Type: application/json" \
-d '{"name":"Nom du site ou du client"}'
GET /api/reviews
Retourne le lieu et la liste d’avis au format JSON. Paramètre requis :
placeId (identifiant Google du lieu).
| Paramètre / en-tête | Obligatoire | Description |
|---|---|---|
placeId (query) |
Oui | Identifiant du lieu (ex. préfixe ChIJ). |
x-api-key |
Oui | Clé client rw_…. |
curl -sS "https://reviews.rentasite.fr/api/reviews?placeId=VOTRE_PLACE_ID" \
-H "x-api-key: rw_VOTRE_CLE"
placeId : Google propose un exemple interactif
Place ID Finder
(Maps JavaScript API). Après recherche d’un lieu, l’identifiant s’affiche dans la fenêtre
d’information (souvent un identifiant commençant par ChIJ).
Réponse JSON (GET /api/reviews)
Exemple de structure (les dates sont en ISO 8601) :
{
"name": "Nom du lieu",
"rating": 4.5,
"totalRatings": 128,
"formattedAddress": "Adresse formatée",
"reviews": [
{
"authorName": "…",
"authorPhoto": "https://…",
"rating": 5,
"text": "…",
"relativeTime": "il y a un mois",
"publishedAt": "2025-02-01T12:00:00.000Z",
"language": "fr"
}
]
}
Exemple d’appel côté navigateur (origine autorisée en CORS) :
const r = await fetch(
"https://reviews.rentasite.fr/api/reviews?placeId=" + encodeURIComponent(placeId),
{ headers: { "x-api-key": apiKey } }
);
const data = await r.json();
Pour les assistants IA (LLM)
Instructions destinées aux modèles ou agents qui génèrent des requêtes, du code ou des
tutoriels : respecter exactement méthodes, chemins et en-têtes ci-dessous. La clé Google
Places reste côté serveur ; seule la clé client rw_… transite dans
x-api-key.
-
Base URL : remplacer
{BASE}par l’URL réelle (ex.https://reviews.rentasite.fren production). -
Créer un client (souvent une fois par site) :
POST {BASE}/api/clientsavecContent-Type: application/jsonet corps{"name":"Nom du site ou du client"}. ConserverapiKeyde la réponse (préfixerw_). -
Avis :
GET {BASE}/api/reviews?placeId=<PLACE_ID>avec en-têtex-api-key: <apiKey>. Ne pas inventerplaceId: il doit être fourni par l’utilisateur ou issu du Place ID Finder Google (souvent préfixeChIJ). -
Succès (200) : JSON avec
name,rating,totalRatings,formattedAddress,reviews(tableau :authorName,rating, etc., dates ISO 8601 danspublishedAtsi présent). -
Erreurs : généralement
{"error":"…"}.400= paramètres invalides ;401/403= clé absente ou invalide ;429= limite de débit ;502= souvent Google Places côté serveur ;500= autre erreur. -
Code généré : contrôler le statut HTTP avant de parser le JSON ;
utiliser
encodeURIComponent(placeId)dans l’URL. -
Santé :
GET {BASE}/api/healthsans authentification.
| Méthode | Chemin | Auth |
|---|---|---|
| GET | /api/health |
non |
| POST | /api/clients |
non |
| GET | /api/reviews?placeId=… |
x-api-key |
CORS et sécurité
https://www.client.com) dans la
variable d’environnement CORS_ORIGINS côté déploiement du serveur.
- Ne publiez pas la clé Google Places dans le front.
- La clé
rw_…est visible dans les requêtes navigateur ; elle ne sert qu’à votre API, pas à Google.
Ressources
-
Tester
/api/healthsur ce domaine - Dépôt GitHub (README, schéma PocketBase)
- Rentasite