Le webservice

Format général de retour :

  • Succès : {code:2XX, success:...}
  • Erreur : {code:3XX ou 4XX, error:"...", info:...}

Prochains départs

Adresse du service : http://termobile-ws.sfhost.net/prochainsdeparts.php (voir la source)

Recherche de gare

  • Appel : ?gare=Nom-De-La-Gare
  • Réponse standard : code=201, success={gares=Liste des gares format Nom-De-La-Gare=Id-De-La-Gare}
  • Réponse raccourcie : Si une seule gare est remontée par le serveur, alors on effectue directement la recherche des prochains départs, et la réponse sera donc au format "Listing des prochains départs".
  • Exemple : ?gare=Villefranche{"code":201,"success":{"gares":{"villefranche-d''alb.-ce":1750,"villefranche de rgue-12":1749,...}}}
  • Codes d'erreur :
    • 310 - Paramètre "gare" attendu : Mauvaise utilisation du service qui attend au moins un paramètre
    • 320 - Erreur serveur (cookie de session) : Il a été impossible de récupérer le cookie de session sur le site termobile.fr
    • 321 - Erreur serveur (status = X) : Erreur serveur inattendue lors de la récupération des gares.
    • 330 - Aucune gare trouvee : Aucune gare n'a été trouvée avec le nom demandé.
    • 340 - Erreur inconnue : La réponse du serveur n'a pas pu être analysée, et il a été impossible d'en extraire une liste de gares, probable symptome d'une modification du format sur termobile.fr.
    • 331 - Aucune gare trouvee (bis) : Après une tentative d'analyse de la réponse du serveur, aucune gare n'a pu être extraite, probable symptome d'une modification du format sur termobile.fr.

Listing des prochains départs

  • Appel : ?gare=Nom-De-La-Gare&id=Id-De-La-Gare
  • Réponse : code=202, success={nom=Nom-Gare, id=Id-Gare, departs=Liste des departs},
    Format des départs : type=Type-Train, numero=Numero-Train, heure=Heure-Depart, destination=Gare-Destination, retards=Liste des retards,
    Format des retards : retard=Durée-Retard, motif=Justification-Retard.
  • Exemple : ?gare=Villefranche-sur-Saone&id=6358
  • Codes d'erreur :
    • 322 - Erreur serveur (status = X) : Erreur serveur inattendue lors de la récupération des gares.
    • 350 - ID invalide : Identifiant de la gare invalide, aucune gare avec le nom recherché n'a été trouvée avec cet identifiant.
    • 351 - ID invalide (bis) : Idem.

Informations du train

Adresse du service : http://termobile-ws.sfhost.net/train.php (voir la source)

Infos sur le train

  • Appel : ?num=Numéro-Du-Train
  • Réponse standard : code=200, success={numero=Numéro du train, date=Date, heures=Liste des horaires connus format Nom-Gare=Heure, arrets=Liste des gares dans l'ordre}
  • Exemple : ?num=891501{"code":200,"success":{"numero":"891501","date":"08 mai 2010","heures":{"Dijon-Ville":"20h33","Lyon-Perrache":"22h51"},"arrets":["Dijon-Ville","Beaune",...,"Lyon-Perrache"]}}
  • Codes d'erreur :
    • 310 - Paramètre "num" attendu : Mauvaise utilisation du service qui attend au moins un paramètre
    • 311 - Paramètre "num" invalide : Mauvais format pour le paramètre "num"
    • 320 - Erreur serveur (cookie de session) : Il a été impossible de récupérer le cookie de session sur le site termobile.fr
    • 321 - Erreur serveur (status = X) : Erreur serveur inattendue lors de la récupération des informations
    • 330 - Mauvais format de la réponse : La réponse serveur est dans un format inattendu et non exploitable.

Mirroring du service web

Il peut être prévu - si le besoin s'en fait sentir - la mise en place un système de "mirrorring" afin que ceux qui souhaitent aider puissent héberger le script et déclarer qu'à telle adresse une copie du service est disponible. L'application se connectera alors indifféremment à l'un des services déclarés pour récupérer les gares. C'est pourquoi j'ai laissé en libre consultation la source de ce script (très basique vous le verrez).