velib-tracker/velibtracker/fetchVelibData.swift
Louis 701d163547
feat: Ability to view stations from the API
Addition of a single component for stations; creation of structure; creation of function to retrieve bikes in real time
2023-09-02 17:19:40 +02:00

53 lines
1.5 KiB
Swift

//
// fetchVelibData.swift
// velibtracker
//
// Created by Louis Gallet on 02/09/2023.
//
import Foundation
var velibStations: [VelibStation] = []
import Foundation
func fetchVelibData() {
// L'URL de l'API Vélib
let apiUrl = URL(string: "https://opendata.paris.fr/api/explore/v2.1/catalog/datasets/velib-disponibilite-en-temps-reel/records?select=stationcode,name,capacity,numdocksavailable,numbikesavailable,mechanical,ebike,coordonnees_geo")!
// Créez une session URLSession pour effectuer la requête
let session = URLSession.shared
// Créez la tâche de requête
let task = session.dataTask(with: apiUrl) { (data, response, error) in
// Vérifiez s'il y a des erreurs
if let error = error {
print("Erreur de requête : \(error.localizedDescription)")
return
}
// Vérifiez si les données sont présentes
guard let data = data else {
print("Aucune donnée reçue.")
return
}
do {
// Décodez les données en utilisant le décodeur JSON
let decoder = JSONDecoder()
let velibResponse = try decoder.decode(VelibResponse.self, from: data)
// Stockez les données dans la variable globale velibStations
velibStations = velibResponse.results
print("Données Vélib récupérées avec succès.")
} catch {
print("Erreur lors du décodage JSON : \(error.localizedDescription)")
}
}
// Lancez la tâche de requête
task.resume()
}