Rentasite Documentation

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"
Trouver un 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.

  1. Base URL : remplacer {BASE} par l’URL réelle (ex. https://reviews.rentasite.fr en production).
  2. Créer un client (souvent une fois par site) : POST {BASE}/api/clients avec Content-Type: application/json et corps {"name":"Nom du site ou du client"}. Conserver apiKey de la réponse (préfixe rw_).
  3. Avis : GET {BASE}/api/reviews?placeId=<PLACE_ID> avec en-tête x-api-key: <apiKey>. Ne pas inventer placeId : il doit être fourni par l’utilisateur ou issu du Place ID Finder Google (souvent préfixe ChIJ).
  4. Succès (200) : JSON avec name, rating, totalRatings, formattedAddress, reviews (tableau : authorName, rating, etc., dates ISO 8601 dans publishedAt si présent).
  5. 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.
  6. Code généré : contrôler le statut HTTP avant de parser le JSON ; utiliser encodeURIComponent(placeId) dans l’URL.
  7. Santé : GET {BASE}/api/health sans authentification.
Méthode Chemin Auth
GET /api/health non
POST /api/clients non
GET /api/reviews?placeId=… x-api-key

CORS et sécurité

Ajoutez chaque origine autorisée (ex. 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