Mon Territoire devient Solutions & Territoire.
L'adresse de l'API évolue aussi pour devenir api.solutions-territoire.fr.
Exemples / Création d'un client Ruby
Prérequis
De nombreuses gems permettent d'utiliser le protocole OAuth.
L'exemple ci-dessous utilise la gem oauth2 et peut être lancé dans une console Ruby.
gem install oauth2
Création d'un client OAuth en Ruby
Initialisez le client OAuth pour obtenire un jeton d'accés en utilisant la méthode Client Credentials décrite dans Authentification :
require 'oauth2' url = "https://api.solutions-territoire.fr/" client_id = "z0WtGLm1f--KETSFQzqtK4EkJ7y3NBbCksV_-Spjuz0" client_secret = "gGb1JZtOWFjzAxGCZdfRUhGNM_1r-OFlM9YCByImT44" client = OAuth2::Client.new(client_id, client_secret, site: url, max_redirects: 0) token = client.client_credentials.get_token
Exemple d'utilisations du client :
Obtention d'un jeux de données :
puts datasets = token.get("/datasets").parsed["datasets"] # {"id"=>"95ade69a-6aff-45ef-bafd-06052e5d3b86", "title"=>"Locaux de catégories 7 & 8", "version"=>3} # {"id"=>"016ce989-3233-4025-ba95-79f89b12b83d", "title"=>"Etablissements fermé au cours du mois", "version"=>12} puts url = token.get("/datasets/#{datasets[0]["id"]}", headers: { "Accept" => "text/csv" }).headers["location"] # https://static.mon-territoire.fr/datasets/95ade69a-6aff-45ef-bafd-06052e5d3b86-v3.csv?Signature=6kq6XtzBt8zja2tq7S%2FJaAPy90U%3D&Expires=1566213533
Obtention de zones :
puts decoupages = token.get("/decoupages").parsed["decoupages"] # {"id"=>"a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11"", "title"=>"Zones d'activités économiques", "url"=>"/v0/decoupages/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11"} puts zones = token.get(decoupages[0]["url"]).parsed.dig("decoupage", "zones") # {"id"=>"b3e2ea99-10ca-2eca-a26e-6ae91c0ab0c24", "title"=>"Zone des moulins", "url"=>"/v0/zones/b3e2ea99-10ca-2eca-a26e-6ae91c0ab0c24"}} # {"id"=>"02c75652-4132-4ed8-8af9-8c19285e0e55", "title"=>"Zone du lac", "url"=>"/v0/zones/02c75652-4132-4ed8-8af9-8c19285e0e55"}} puts geojson = token.get(zones[0]["url"], headers: { "Accept" => "application/geo+json" }).body # {"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[2.2056555747985844,48.702021761507254], ...}