etalab / transport-profil-siri-fr

1 stars 0 forks source link

SIRI EstimatedTimetable et filtre par LineRef #1

Open AntoineAugusti opened 9 months ago

AntoineAugusti commented 9 months ago

Question concernant le profil SIRI, pour GetEstimatedTimetable. Quelle est la requête appropriée pour filtrer selon une seule ligne ? Faut-il avoir Lines > LineDirection > LineRef ou uniquement Lines > LineRef ?

Sur le site actuellement, il me semble qu'on indique uniquement Lines > LineRef.

image

Côté EnRoute cc @albanpeignier, la requête fait apparaitre ceci.

<sw:GetEstimatedTimetable xmlns:sw="http://wsdl.siri.org.uk" xmlns:siri="http://www.siri.org.uk/siri">
    <ServiceRequestInfo>
        <siri:RequestTimestamp>{{current_time}}</siri:RequestTimestamp>
        <siri:RequestorRef>{{partner_token}}</siri:RequestorRef>
        <siri:MessageIdentifier>Test:Message::{{$randomUUID}}:LOC</siri:MessageIdentifier>
    </ServiceRequestInfo>
    <Request version="2.0:FR-IDF-2.4">
        <siri:RequestTimestamp>{{current_time}}</siri:RequestTimestamp>
        <siri:MessageIdentifier>Test:Message::{{$randomUUID}}:LOC</siri:MessageIdentifier>
        <siri:Lines>
          <siri:LineRef>{{line_identifier}}</siri:LineRef>
      </siri:Lines>
  </Request>
  <RequestExtension />
</sw:GetEstimatedTimetable>

Côté CEN 🇪🇺, il y a un wrap LineDirection qui est présent.

cc @Aurige

albanpeignier commented 9 months ago

En effet, la documentation postman d'Ara SaaS fait référence à une structure invalide:

➜ be exe/siri-xsd-validate test.xml
Validate test.xml
Inspect test.xml: 1 error(s)
test.xml:16:0: ERROR: Element '{http://www.siri.org.uk/siri}LineRef': This element is not expected. Expected is ( {http://www.siri.org.uk/siri}LineDirection ).

L'erreur vient d'un vieux document:

image image

où il fallait interpréter la structure du tableau pour comprendre que la forme correcte fait intervenir un LineDirection intermédiaire.

A noter qu'Ara gère les deux formes, dont la forme valide:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header/>
  <soap:Body>
    <sw:GetEstimatedTimetable xmlns:sw="http://wsdl.siri.org.uk" xmlns:siri="http://www.siri.org.uk/siri">
      <ServiceRequestInfo>
        <siri:RequestTimestamp>2030-01-01T12:00:00.000Z</siri:RequestTimestamp>
        <siri:RequestorRef>enRoute</siri:RequestorRef>
        <siri:MessageIdentifier>3a2ac89a-6376-11ee-b1b8-4bee866f6f22</siri:MessageIdentifier>
      </ServiceRequestInfo>
      <Request>
        <siri:RequestTimestamp>2030-01-01T12:00:00.000Z</siri:RequestTimestamp>
        <siri:MessageIdentifier>3a2ac89a-6376-11ee-b1b8-4bee866f6f22</siri:MessageIdentifier>

        <siri:Lines>
          <siri:LineDirection>
            <siri:LineRef>42</siri:LineRef>
          </siri:LineDirection>
        </siri:Lines>
      </Request>
      <RequestExtension />
    </sw:GetEstimatedTimetable>
  </soap:Body>
</soap:Envelope>

Nous allons mettre à jour notre documentation.

thbar commented 9 months ago

Merci @albanpeignier! On a fait évolué notre requêteur SIRI pour utiliser Lines > LineDirection > LineRef (forme "correcte").

Du coup il va falloir faire évoluer le markdown du profil si je comprends bien ?

Si c'est bien le cas, il faut voir si on finalise d'abord etalab/transport-profil-netex-fr#32 ou bien si la correction est faite après (j'aimerais autant ne pas apporter de modifications sémantiques sur etalab/transport-profil-netex-fr#32 car c'est plus simple à tracer après).

albanpeignier commented 9 months ago

Du coup il va falloir faire évoluer le markdown du profil si je comprends bien ?

Oui. Le markdown du Profil SIRI fait la même simplification (invalide) que notre documentation. Peut être juste en précisant la chose dans la description de Lines:

Liste de LineDirections définissant les lignes contenant les courses pour lesquelles on souhaite des informations.

thbar commented 4 months ago

Je déplace cela vers le nouveau repository https://github.com/etalab/transport-profil-netex-fr/issues/65.