6.1 KiB
6.1 KiB
API - Export des objets Stats
Endpoint
GET /api/v1/stats/export
Description
Cet endpoint permet d'exporter les objets Stats au format JSON avec leurs propriétés de nom et de décomptes, similaire à la commande app:export-stats
.
Paramètres de requête
Paramètre | Type | Défaut | Description |
---|---|---|---|
zone |
string | - | Code INSEE spécifique à exporter (optionnel) |
pretty |
boolean | false | Formater le JSON avec indentation |
include_followups |
boolean | true | Inclure les données de followup |
include_places |
boolean | false | Inclure les données des lieux (peut être volumineux) |
Exemples d'utilisation
Export de toutes les zones
curl "https://osm-commerces.cipherbliss.com/api/v1/stats/export"
Export avec formatage JSON
curl "https://osm-commerces.cipherbliss.com/api/v1/stats/export?pretty=true"
Export d'une zone spécifique
curl "https://osm-commerces.cipherbliss.com/api/v1/stats/export?zone=75056"
Export d'une zone avec formatage et sans followups
curl "https://osm-commerces.cipherbliss.com/api/v1/stats/export?zone=75056&pretty=true&include_followups=false"
Export complet avec lieux
curl "https://osm-commerces.cipherbliss.com/api/v1/stats/export?pretty=true&include_places=true"
Réponse
Succès (200 OK)
[
{
"id": 1,
"zone": "75056",
"name": "Paris",
"dateCreated": "2024-01-15 10:30:00",
"dateModified": "2024-01-20 14:45:00",
"population": 2161000,
"budgetAnnuel": "8500000000",
"siren": 200054781,
"codeEpci": 200054781,
"codesPostaux": "75001;75002;75003;...",
"decomptes": {
"placesCount": 1250,
"avecHoraires": 980,
"avecAdresse": 1200,
"avecSite": 850,
"avecAccessibilite": 450,
"avecNote": 320,
"completionPercent": 75,
"placesCountReal": 1250
},
"followups": [
{
"name": "fire_hydrant_count",
"measure": 1250,
"date": "2024-01-20 14:45:00"
},
{
"name": "fire_hydrant_completion",
"measure": 85.5,
"date": "2024-01-20 14:45:00"
}
],
"places": [
{
"id": 1,
"name": "Boulangerie du Centre",
"mainTag": "shop",
"osmId": 123456,
"osmKind": "node",
"email": "contact@boulangerie.fr",
"note": "Boulangerie artisanale",
"zipCode": "75001",
"siret": "12345678901234",
"lat": 48.8566,
"lon": 2.3522,
"hasOpeningHours": true,
"hasAddress": true,
"hasWebsite": true,
"hasWheelchair": false,
"hasNote": true,
"completionPercentage": 85
}
]
}
]
Erreur - Zone non trouvée (404 Not Found)
{
"error": "Aucun objet Stats trouvé",
"message": "Aucune zone trouvée pour le code INSEE: 99999"
}
Erreur - Erreur serveur (500 Internal Server Error)
{
"error": "Erreur lors de l'export",
"message": "Description de l'erreur"
}
Headers de réponse
Header | Description |
---|---|
Content-Type |
application/json |
Content-Disposition |
attachment; filename="stats_export.json" |
X-Export-Count |
Nombre d'objets exportés |
X-Export-Generated |
Date/heure de génération (format ISO 8601) |
X-Export-Zone |
Code INSEE si export d'une zone spécifique |
Structure des données
Informations générales
id
: Identifiant unique de l'objet Statszone
: Code INSEE de la zonename
: Nom de la ville/zonedateCreated
: Date de créationdateModified
: Date de dernière modification
Données démographiques et administratives
population
: Population de la zonebudgetAnnuel
: Budget annuel de la collectivitésiren
: Code SIRENcodeEpci
: Code EPCIcodesPostaux
: Codes postaux de la zone
Décomptes
placesCount
: Nombre de lieux enregistrésavecHoraires
: Nombre de lieux avec horaires d'ouvertureavecAdresse
: Nombre de lieux avec adresse complèteavecSite
: Nombre de lieux avec site webavecAccessibilite
: Nombre de lieux avec accessibilité PMRavecNote
: Nombre de lieux avec notecompletionPercent
: Pourcentage de complétion globalplacesCountReal
: Nombre réel de lieux (comptage direct)
Followups (si include_followups=true
)
followups
: Tableau des mesures de suivi (CityFollowUp)name
: Nom de la mesuremeasure
: Valeur de la mesuredate
: Date de la mesure
Places (si include_places=true
)
places
: Tableau des lieux de la zoneid
: Identifiant du lieuname
: Nom du lieumainTag
: Tag principal OSMosmId
: ID OSMosmKind
: Type OSM (node/way)email
: Email de contactnote
: NotezipCode
: Code postalsiret
: Numéro SIRETlat
: Latitudelon
: LongitudehasOpeningHours
: A des horaires d'ouverturehasAddress
: A une adresse complètehasWebsite
: A un site webhasWheelchair
: A des informations d'accessibilitéhasNote
: A une notecompletionPercentage
: Pourcentage de complétion du lieu
Cas d'usage
Export pour analyse
# Export de toutes les villes avec formatage
curl "https://osm-commerces.cipherbliss.com/api/v1/stats/export?pretty=true" > analyse_villes.json
# Export d'une ville spécifique
curl "https://osm-commerces.cipherbliss.com/api/v1/stats/export?zone=75056&pretty=true" > paris.json
Export pour traitement automatisé
# Export compact pour traitement par script
curl "https://osm-commerces.cipherbliss.com/api/v1/stats/export" > stats_compact.json
Export avec données complètes
# Export avec tous les lieux (attention: peut être volumineux)
curl "https://osm-commerces.cipherbliss.com/api/v1/stats/export?include_places=true&pretty=true" > stats_complet.json
Limitations
- L'option
include_places=true
peut générer des fichiers très volumineux pour les grandes villes - Les requêtes avec
include_places=true
peuvent être plus lentes - Le formatage JSON (
pretty=true
) augmente la taille de la réponse