📡 Documentation API - Ask Angela

Vue d'ensemble

Ce site expose une API REST pour récupérer les objets Ask Angela en JSON ou GeoJSON. L'API permet de filtrer les données selon différents critères.

Endpoint de base

https://ask-angela.cipherbliss.com//api/ask-angela.php

Format de réponse : JSON ou GeoJSON
Méthode HTTP : GET
CORS : Activé (Access-Control-Allow-Origin: *)

Paramètres

Paramètre Type Requis Description
format string Non Format de réponse : geojson (défaut) ou json
days integer Non Filtrer les objets modifiés dans les N derniers jours (basé sur le timestamp OSM). Doit être un nombre positif entre 1 et 3650.
bbox string Non Bounding box au format min_lon,min_lat,max_lon,max_lat. Exemple : -5,42,10,51 pour la France.
city string Non Filtrer par nom de ville (insensible à la casse). Exemple : Paris

Note : Les paramètres peuvent être combinés. Par exemple : ?days=30&city=Paris&format=json

Exemples d'utilisation

Format de réponse

GeoJSON (format=geojson ou par défaut)

Format standard pour les données géographiques, compatible avec la plupart des outils de cartographie.

{ "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": { "type": "Point", "coordinates": [longitude, latitude] }, "properties": { "osm_id": 123456, "osm_type": "node", "name": "Nom du lieu", "addr:city": "Ville", "timestamp": "2024-01-15T10:30:00Z", "user": "utilisateur_osm" } } ], "metadata": { "count": 1, "generated_at": "2024-01-21T12:00:00+00:00", "source": "OpenStreetMap", "license": "ODbL" } }

JSON simple (format=json)

Format simplifié, liste d'objets sans structure GeoJSON.

{ "objects": [ { "osm_id": 123456, "osm_type": "node", "name": "Nom du lieu", "city": "Ville", "longitude": 2.3522, "latitude": 48.8566, "timestamp": "2024-01-15T10:30:00Z", "user": "utilisateur_osm" } ], "count": 1, "generated_at": "2024-01-21T12:00:00+00:00", "source": "OpenStreetMap", "license": "ODbL" }

Utilisation avec cURL

# Récupérer tous les objets curl "https://ask-angela.cipherbliss.com//api/ask-angela.php" # Récupérer les objets des 7 derniers jours curl "https://ask-angela.cipherbliss.com//api/ask-angela.php?days=7" # Sauvegarder dans un fichier GeoJSON curl "https://ask-angela.cipherbliss.com//api/ask-angela.php?format=geojson" -o ask-angela.geojson # Filtrer par ville et sauvegarder curl "https://ask-angela.cipherbliss.com//api/ask-angela.php?city=Paris&format=json" -o paris-ask-angela.json

Utilisation avec JavaScript

Exemple avec fetch()

// Récupérer les objets des 7 derniers jours fetch('https://ask-angela.cipherbliss.com//api/ask-angela.php?days=7') .then(response => response.json()) .then(data => { console.log(`Nombre d'objets: ${data.metadata.count}`); data.features.forEach(feature => { console.log(feature.properties.name); }); }) .catch(error => { console.error('Erreur:', error); });

Exemple avec async/await

async function getAskAngelaObjects(days = null) { try { const url = 'https://ask-angela.cipherbliss.com//api/ask-angela.php' + (days ? `?days=${days}` : ''); const response = await fetch(url); const data = await response.json(); return data; } catch (error) { console.error('Erreur:', error); return null; } } // Utilisation const data = await getAskAngelaObjects(7); if (data) { console.log(`Nombre d'objets: ${data.metadata.count}`); }

Utilisation avec Python

import requests import json # Récupérer tous les objets response = requests.get('https://ask-angela.cipherbliss.com//api/ask-angela.php') data = response.json() print(f"Nombre d'objets: {data['metadata']['count']}") # Filtrer par ville response = requests.get('https://ask-angela.cipherbliss.com//api/ask-angela.php?city=Paris') paris_data = response.json() # Sauvegarder dans un fichier with open('ask-angela.geojson', 'w') as f: json.dump(data, f, indent=2)

Codes de réponse HTTP

Code Description
200 Succès - Les données sont retournées
400 Requête invalide - Paramètre incorrect (ex: format invalide)
404 Données non disponibles - Le fichier GeoJSON n'existe pas
500 Erreur serveur - Erreur lors du traitement de la requête

Limites et performances

Licence et attribution

Les données proviennent d'OpenStreetMap et sont sous licence ODbL.

Le fichier GeoJSON est mis à jour régulièrement via le script make fetch-osm.

Note : Cette API est fournie sans garantie. Les données peuvent ne pas être à jour en temps réel.

← Retour à l'accueil Tester l'API →