Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
jsonapihoraires [2017/07/25 11:11]
nw
jsonapihoraires [2017/08/31 15:02]
nw
Ligne 1: Ligne 1:
 ===== Réponse JSON horaires théoriques API ===== ===== Réponse JSON horaires théoriques API =====
 ==== Exemple de réponse d'un item (une circulation) ==== ==== Exemple de réponse d'un item (une circulation) ====
 +<​grid>​
 +<col sm="​6">​
 Voici un des items obtenus. Sa lecture vous sera assez simple, quelques points cependant. Voici un des items obtenus. Sa lecture vous sera assez simple, quelques points cependant.
 +</​col>​ 
 +<col sm="​6">​
 <​code>​ <​code>​
 { {
     "​calendars":​ [     "​calendars":​ [
 </​code>​ </​code>​
 +</​col>​
 +</​grid>​
  
 <​grid>​ <​grid>​
 <col sm="​6">​ <col sm="​6">​
 Liste des périodes de validité de la circulation donnée. Ici, les données présentées signifient que le train circule du 28/08/2017 au 02/09/2017 les lundi, mardi, mercredi, jeudi et vendredi.\\ Liste des périodes de validité de la circulation donnée. Ici, les données présentées signifient que le train circule du 28/08/2017 au 02/09/2017 les lundi, mardi, mercredi, jeudi et vendredi.\\
-Ce n'est pas la manière la plus simple de récupérer ces données de validité, le //validity_pattern// contenu en fin de réponse est nettement plus simple à prendre en compte informatiquement.+Ce n'est pas la manière la plus simple de récupérer ces données de validité, le **validity_pattern** contenu en fin de réponse est nettement plus simple à prendre en compte informatiquement.
 </​col>​ </​col>​
 <col sm="​6">​ <col sm="​6">​
Ligne 46: Ligne 51:
 </​col>​ </​col>​
 </​grid>​ </​grid>​
 +
 +<​grid>​
 +<col sm="​6">​
 L'​identification de la circulation se fait logiquement par le numéro de circulation SNCF « name » attention cependant, il n'est pas toujours unique (des bus partagent parfois des mêmes numéros, voire du FRET avec du Transilien, pas totalement fiable !), et l'id qui lui est forcément unique (vous aurez remarqué qu'il contient le numéro SNCF). L'​identification de la circulation se fait logiquement par le numéro de circulation SNCF « name » attention cependant, il n'est pas toujours unique (des bus partagent parfois des mêmes numéros, voire du FRET avec du Transilien, pas totalement fiable !), et l'id qui lui est forcément unique (vous aurez remarqué qu'il contient le numéro SNCF).
 +</​col>​
 +<col sm="​6">​
 <​code>​ <​code>​
     "​id":​ "​vehicle_journey:​OCE:​SN855807F01001",​     "​id":​ "​vehicle_journey:​OCE:​SN855807F01001",​
Ligne 55: Ligne 65:
     "​name":​ "​855807",​     "​name":​ "​855807",​
 </​code>​ </​code>​
-Les //​stop_times// sont en réalité la liste des arrêts avec les heures d'​arrivée et de départ, ​//headsign// correspond au numéro de la circulation affiché (attention à la parité, ou aux lignes Transiliennes) ainsi que le lieu //stop_point//+</col> 
 +</grid> 
 + 
 +<​grid>​ 
 +<col sm="​6">​ 
 +Les **stop_times** sont en réalité la liste des arrêts avec les heures d'​arrivée et de départ, ​**headsign** correspond au numéro de la circulation affiché (attention à la parité, ou aux lignes Transiliennes) ainsi que le lieu **stop_point** 
 +</col> 
 +<col sm="​6">​
 <​code>​ <​code>​
     "​stop_times":​ [     "​stop_times":​ [
Ligne 63: Ligne 80:
             "​headsign":​ "​855807",​             "​headsign":​ "​855807",​
 </​code>​ </​code>​
 +</​col>​
 +</​grid>​
 +
 +<​grid>​
 +<col sm="​6">​
 Un arrêt est déterminé par sa géolocalisation (lat/lon), son id unique, qui contient notamment à sa fin le [[numerouic|numéro UIC]] de l'​arrêt sur 2+6 chiffres.\\ Un arrêt est déterminé par sa géolocalisation (lat/lon), son id unique, qui contient notamment à sa fin le [[numerouic|numéro UIC]] de l'​arrêt sur 2+6 chiffres.\\
-Le //label// est le nom de l'​arrêt ou de la gare, //name// également (à discriminer ?).+Le **label** est le nom de l'​arrêt ou de la gare (ce n'est pas la même chosevoir la page des [[glossaire|définitions]],​ **name** également (à discriminer ?). 
 + 
 +Suivent à la suite la liste des arrêts prévus, dans l'​ordre d'​arrivée. 
 +</​col>​ 
 +<col sm="​6">​
 <​code>​ <​code>​
             "​stop_point":​ {             "​stop_point":​ {
Ligne 87: Ligne 113:
        {...}        {...}
     ],     ],
 +</​code>​
 +</​col>​
 +</​grid>​
 +
 +<​grid>​
 +<col sm="​6">​
 +L'​objet **trip** contient de quoi identifier la circulation à nouveau, de la même manière que nous avons vu au début (les données sont d'​ailleurs les mêmes).
 +</​col>​
 +<col sm="​6">​
 +<​code>​
     "​trip":​ {     "​trip":​ {
         "​id":​ "​OCE:​SN855807F01001",​         "​id":​ "​OCE:​SN855807F01001",​
         "​name":​ "​855807"​         "​name":​ "​855807"​
     }     }
 +</​code>​
 +</​col>​
 +</​grid>​
 +
 +<​grid>​
 +<col sm="​6">​
 +Enfin, le **validity_pattern** est une manière plutôt commode de représenter les validités de circulation d'une circulation puisqu'​il s'​agît bêtement d'​indiquer jour par jour si le train circule (1) ou non (0) à compter d'une date donnée (**beginning_date**) incluse.
 +
 +L'​avantage de cette représentation est qu'​elle évite tout bug d'​interprétation des inclusions ou exclusions pouvant être contenues dans le champ **calendars** vu plus haut, et est extrêmement simple à //​parser//​... :)
 +</​col>​
 +<col sm="​6">​
 +<​code>​
     "​validity_pattern":​ {     "​validity_pattern":​ {
         "​beginning_date":​ "​20170703",​         "​beginning_date":​ "​20170703",​
Ligne 97: Ligne 145:
 } }
 </​code>​ </​code>​
 +</​col>​
 +</​grid>​