pgrimaud / horaires-ratp-api

Webservice pour les horaires et trafic RATP en temps réel
https://api-ratp.pierre-grimaud.fr/v4
MIT License
269 stars 30 forks source link

Format JSON sur les horaires des stations #29

Closed JBBailly closed 7 years ago

JBBailly commented 7 years ago

Bonjour,

Merci beaucoup pour cet API ! Par contre je n'arrive pas à obtenir les horaires des stations au format JSON. Je fais des requêtes sur https://api-ratp.pierre-grimaud.fr/v2/metros/8/stations/275?destination=23?format=json ou https://api-ratp.pierre-grimaud.fr/v2/metros/8/stations/275?destination=23?callback=myCallBack mais le format ne me semble pas en JSON ... (enfin je suis débutant, donc le problème n'est peut être pas là). Mais j'y arrive bien avec http://api-ratp.pierre-grimaud.fr/v2/rers?format=json (par exemple) !? Il y a un problème de formatage ?

Pour info je suis sur Processing qui est du JAVA simplifié. J'utilise une librairie qui permet de charger des fichiers JSON avec une commande json = loadJSONObject("http...")

Merci pour ton aide !

pgrimaud commented 7 years ago

Hello !

Je viens de regarder. Si si, c'est bien du JSON formaté.

J'ai regardé Processing, j'ai testé ça et ça semble marcher :

JSONObject json;

void setup() {

  JSONObject json = loadJSONObject("http://api-ratp.pierre-grimaud.fr/v2/rers");
  String pageName = json.getJSONObject("_meta").getString("version");

  println(pageName);
}

Ce qui affiche bien la valeur 2, du json suivant :

{
    "response": {
        "rers": [
            {
                "line": "A",
                "destinations": [
                    {
                        "id": "1",
                        "name": "St-Germain-en-Laye Poissy-Cergy",
                        "slug": "st+germain+en+laye+poissy+cergy"
                    },
                    {
                        "id": "2",
                        "name": "Boissy-St-Léger Marne-la-Vallée",
                        "slug": "boissy+st+leger+marne+la+vallee"
                    }
                ]
            },
            {
                "line": "B",
                "destinations": [
                    {
                        "id": "3",
                        "name": "Robinson Saint-Rémy-lès-Chevreuse",
                        "slug": "robinson+saint+remy+les+chevreuse"
                    },
                    {
                        "id": "4",
                        "name": "Charles-de-Gaulle Mitry-Claye",
                        "slug": "charles+de+gaulle+mitry+claye"
                    }
                ]
            }
        ]
    },
    "_meta": {
        "version": "2",
        "date": "2016-11-22T20:26:01+01:00",
        "call": "GET /rers"
    }
}

Bonne soirée 😄

JBBailly commented 7 years ago

Bonjour, Merci pour ta réponse!

Alors ton exemple marche bien sur Procesing, par contre, si je remplace "http://api-ratp.pierre-grimaud.fr/v2/rers" par un lien vers un horaire de station comme "https://api-ratp.pierre-grimaud.fr/v2/metros/8/stations/275?destination=23", j'ai une erreur en retour :

NullPointerException javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) [...] https://api-ratp.pierre-grimaud.fr/v2/bus/96/stations/993?destination=264 does not exist or could not be read

Même erreur en rajoutant "?format=json" ou ?callback=myCallBack. Une idée ?

Merci !

pgrimaud commented 7 years ago

Essaie en http et non en https. (Pourtant mon certificat est valide 😞 )

JBBailly commented 7 years ago

Oui ça marche ! Désolé pour le certificat... je crois que c'est uniquement sur le format de requêtes "Horaires" qu'il y a un problème... Merci en tout cas!

Et une suggestion : dans ta description du format des requêtes justement, tu utilise des exemples qui renvoient des erreurs (ou "Bad request"). Ca m'a un peu perturbé sur la manière de l'utiliser au début... Est ce qu'un exemple comme https://api-ratp.pierre-grimaud.fr/v2/metros/3B/stations?format=xml n'est pas plus simple à comprendre ?

Merci encore !

pgrimaud commented 7 years ago

@Brabahou Tout à fait, j'ai changé la doc pour clarifier les exemples de base.