Skip to content

Latest commit

 

History

History
561 lines (456 loc) · 18.1 KB

Synchronisation.adoc

File metadata and controls

561 lines (456 loc) · 18.1 KB

SDIS Remocra - Synchronisation

1. Schéma XSD

Le schéma des services XML liés aux points d’eau est décrit dans un schéma XSD :

Le schéma des services XML liés aux tournées est décrit dans un schéma XSD :

Les fichiers décrivent la structure des éléments XML attendus en entrée et produits en sortie.

2. Web services

2.1. Référentiel

Le référentiel est récupéré via des requêtes HTTP GET :

Le référentiel permet de faire la correspondance entre les codes employés et les libellés vus dans Remocra.

2.2. Tournées / consultation des points d’eau

L’ensemble des tournées est consultable avec la requête suivante :

La liste des tournées disponibles uniquement est récupérée via la requête :

La lecture de l’état des PEI est réalisée avec la requête suivante. On s’appuie sur les tournées :

  • http://remocra.sdisxx.fr/remocra/xml/tournees?tournees=1,2&lock=false

    • Méthode HTTP : GET ou POST

    • En entrée, paramètre "tournees" :

      • numéros des tournées concernées la récupération des points d’eau au format XML. Les numéros sont séparés par le caractère ','.

    • En entrée, paramètre "lock=false" :

      • Valeur false pour ne pas appliquer de réservation

La réservation de tournées est réalisée avec la requête suivante. Elle retourne l’état des PEI qui les composent :

  • http://remocra.sdisxx.fr/remocra/xml/tournees?tournees=1,2&lock=true

    • Méthode HTTP : GET ou POST

    • En entrée, paramètre "tournees" :

      • numéros des tournées concernées par la réservation et la lecture des points d’eau au format XML. Les numéros sont séparés par le caractère ','.

      • Remarque : toute réservation en cours dont le numéro de tournée n’est pas passé dans le paramètre "tournees" est supprimée à la suite de l’appel. Par exemple pour supprimer toutes les réservations, on laisse la valeur du paramètre "tournees" vide.

2.3. Mise à jour des points d’eau

La mise à jour de points d’eau est réalisée en postant la description XML des PEI à l’URL suivante :

2.4. Mise à jour des pourcentages des tournées

La mise à jour des pourcentages des tournées est réalisée en postant la description XML des tournées à l’URL suivante :

2.5. Authentification

Utiliser la méthode Basic-auth.

3. Exemples

3.1. Outil curl

Dans les exemples qui suivent, nous utilisons l’outil opensource cURL. Il est disponible ici.

Pour authentifier une requête, on ajoute le paramètre -u <username>:<password> en remplaçant <username> par l’identifiant du compte et <password> par son mot de passe.

3.2. Utilisation par les sociétés d’affermage (sans réservation de tournées)

3.2.1. Récupération du référentiel

Pour récupérer le référentiel lié aux volumes constatés (exemple), on consomme le web service adéquat. Par exemple pour les natures :

# Accès public
curl -v "http://remocra.sdisxx.fr/remocra/xml/natures"
<?xml version="1.0" encoding="UTF-8"?>
<natures>
   <nature>
      <code>PI</code>
      <libelle>PI</libelle>
      <type>PIBI</type>
   </nature>
   <nature>
      <code>BI</code>
      <libelle>BI</libelle>
      <type>PIBI</type>
   </nature>
   <nature>
      <code>CI_FIXE</code>
      <libelle>Réserve</libelle>
      <type>PENA</type>
   </nature>
   <nature>
      <code>PA</code>
      <libelle>Point d'aspiration</libelle>
      <type>PIBI</type>
   </nature>
   <nature>
      <code>CE</code>
      <libelle>Château d'eau avec prise d'alimentation</libelle>
      <type>PIBI</type>
   </nature>
   <nature>
      <code>PU</code>
      <libelle>Puisard d'aspiration</libelle>
      <type>PENA</type>
   </nature>
</natures>

Pour récupérer l’ensemble du référentiel, on consomme le web service suivant :

# Accès public
curl -v "http://remocra.sdisxx.fr/remocra/xml/referentiels"

3.2.2. Liste des tournées

Liste des tournées accessibles :

curl -v -u identifiant:••••• -H "Accept: application/xml;charset=utf-8" -X GET "http://remocra.sdisxx.fr/remocra/tournees?dispo=false"
<?xml version="1.0" encoding="UTF-8"?>
<tournees>
   <tournee nom="Tournée du lac">6</tournee>
   <tournee nom="Piste P152">13</tournee>
</tournees>

3.2.3. Etat des PEI d’une tournée

Etat des PEI de la tournée 6 :

curl -v -u identifiant:••••• -X GET "http://remocra.sdisxx.fr/remocra/xml/tournees?tournees=6&lock=false"
<?xml version="1.0" encoding="UTF-8"?>
<xsi:tournees xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <tournee>
      <debSync>2013-10-28T12:00:00+01:00</debSync>
      <hydrants>
         <hydrantPena xsi:type="CI_FIXE" verif="false">
            <anomalies />
            <codeCommune>TLN</codeCommune>
            <codeDomaine />
            <codeNature>CI_FIXE</codeNature>
            <coordonnees>
               <latitude>43.124900000000025</latitude>
               <longitude>5.9277999999999995</longitude>
            </coordonnees>
            <courrier />
            <dateContr>2013-11-14T15:58:33+01:00</dateContr>
            <dateModification>2013-11-14T15:58:33+01:00</dateModification>
            <dateRecep>2013-10-29T00:00:00+01:00</dateRecep>
            <dispo>DISPO</dispo>
            <gestPointEau />
            <numero>PN TLN 2</numero>
            <numeroInterne>2</numeroInterne>
            <observation>obsv</observation>
            <voie>RUE XAVIER SAVELLI</voie>
            <voie2>RUE LEBLOND SAINT HILAIRE</voie2>
            <codeMateriau />
            <codeVolConstate />
            <dispoHbe>DISPO</dispoHbe>
            <hbe>false</hbe>
         </hydrantPena>
         <hydrantPibi xsi:type="PI" verif="false">
            <anomalies />
            <codeCommune>TLN</codeCommune>
            <codeDomaine />
            <codeNature>PI</codeNature>
            <coordonnees>
               <latitude>43.125000000000014</latitude>
               <longitude>5.9285</longitude>
            </coordonnees>
            <courrier />
            <dateModification>2013-11-14T15:42:11+01:00</dateModification>
            <dateRecep>2013-11-14T15:42:11+01:00</dateRecep>
            <dispo>DISPO</dispo>
            <gestPointEau />
            <numero>PI TLN 2</numero>
            <numeroInterne>2</numeroInterne>
            <voie>AVENUE JEAN MOULIN</voie>
            <choc>false</choc>
            <codeDiametre />
            <codeMarque />
            <codeModele />
         </hydrantPibi>
         <hydrantPibi xsi:type="BI" verif="false">
            <anomalies />
            <codeCommune>TLN</codeCommune>
            <codeDomaine />
            <codeNature>BI</codeNature>
            <coordonnees>
               <latitude>43.125100000000025</latitude>
               <longitude>5.925099999999999</longitude>
            </coordonnees>
            <courrier />
            <dateContr>2014-01-10T17:20:45+01:00</dateContr>
            <dateModification>2014-01-10T17:20:45+01:00</dateModification>
            <dateRecep>2013-11-14T15:30:11+01:00</dateRecep>
            <dispo>DISPO</dispo>
            <gestPointEau />
            <numero>BI TLN 99996</numero>
            <numeroInterne>99996</numeroInterne>
            <choc>false</choc>
            <codeDiametre />
            <codeMarque>BAYARD</codeMarque>
            <codeModele />
         </hydrantPibi>
         <hydrantPibi xsi:type="BI" verif="false">
            <agent1>Tutu</agent1>
            <agent2>Toto</agent2>
            <anneeFabrication>1988</anneeFabrication>
            <anomalies>
               <anomalie>
                  <code>SANSEAU</code>
               </anomalie>
               <anomalie>
                  <code>APROTGER</code>
               </anomalie>
               <anomalie>
                  <code>DISTANCE5M</code>
               </anomalie>
            </anomalies>
            <codeCommune>TLN</codeCommune>
            <codeDomaine>DOMAINE</codeDomaine>
            <codeNature>BI</codeNature>
            <complement>hhg hh !vv</complement>
            <coordonnees>
               <latitude>43.124900000000025</latitude>
               <longitude>5.9256</longitude>
            </coordonnees>
            <courrier>1154dsd</courrier>
            <dateContr>2013-01-13T17:22:48+01:00</dateContr>
            <dateModification>2014-01-13T17:22:48+01:00</dateModification>
            <dateRecep>2013-01-09T07:00:00+01:00</dateRecep>
            <dispo>INDISPO</dispo>
            <gestPointEau>123</gestPointEau>
            <lieuDit>api's here hé hé...</lieuDit>
            <numero>BI TLN 99998</numero>
            <numeroInterne>99998</numeroInterne>
            <observation>obs... hh hubhi api</observation>
            <voie>RUE ROBERT GUILLEMARD</voie>
            <voie2>ALLEE AMIRAL COURBET</voie2>
            <choc>false</choc>
            <codeDiametre>DIAM150</codeDiametre>
            <codeMarque>AVK</codeMarque>
            <codeModele>VEGA</codeModele>
            <debit>20</debit>
            <debitMax>111</debitMax>
            <gestReseau>ABV</gestReseau>
            <numeroSCP>123456789</numeroSCP>
            <pression>6.0</pression>
            <pressionDyn>1.0</pressionDyn>
         </hydrantPibi>
      </hydrants>
      <id>6</id>
      <nom>Tournée du lac</nom>
   </tournee>
</xsi:tournees>

3.2.4. Mise à jour de points d’eau

# Ici, on poste le contenu d'un fichier XML (hydrants_a_televerser.xml)
# Remplacer <username> et <password>
curl -v -u identifiant:••••• -d "@hydrants_a_televerser.xml" -H "Content-Type: application/xml;charset=utf-8" -X POST "http://remocra.sdisxx.fr/remocra/xml/hydrants"
<?xml version="1.0" encoding="UTF-8"?>
<success>
    <message>Hydrants enregistrés avec succès</message>
</success>

Avec en entrée les PEI à téléverser (1 PENA, 3 PIBI). On utilise la balise date* adéquate en fonction du type de visite (soumis à droits) :

  • Visite de réception : dateRecep

  • Reconnaissance opérationnelle périodique : dateReco

  • Contrôle périodique : dateContr

hydrants_a_televerser.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xsi:hydrants
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <hydrantPena xsi:type="CI_FIXE" verif="false">
        <anneeFabrication>0</anneeFabrication>
        <anomalies/>
        <codeCommune>TLN</codeCommune>
        <codeDomaine></codeDomaine>
        <codeNature>CI_FIXE</codeNature>
        <coordonnees>
            <latitude>43.124900000000025</latitude>
            <longitude>5.9277999999999995</longitude>
        </coordonnees>
        <courrier></courrier>
        <dateContr>2013-11-14T15:58:33+01:00</dateContr>
        <dateModification>2013-11-14T15:58:33+01:00</dateModification>
        <dateRecep>2013-10-29T00:00:00+01:00</dateRecep>
        <dispo>DISPO</dispo>
        <gestPointEau></gestPointEau>
        <numero>PN TLN 2</numero>
        <numeroInterne>2</numeroInterne>
        <observation>obsv</observation>
        <voie>RUE XAVIER SAVELLI</voie>
        <voie2>RUE LEBLOND SAINT HILAIRE</voie2>
        <codeMateriau></codeMateriau>
        <codeVolConstate></codeVolConstate>
        <dispoHbe>DISPO</dispoHbe>
        <hbe>false</hbe>
    </hydrantPena>
    <hydrantPibi xsi:type="BI" verif="false">
        <agent1>Tutu</agent1>
        <agent2>Toto</agent2>
        <anneeFabrication>1988</anneeFabrication>
        <anomalies>
            <anomalie>
                <code>APROTGER</code>
            </anomalie>
            <anomalie>
                <code>SANSEAU</code>
            </anomalie>
            <anomalie>
                <code>DISTANCE5M</code>
            </anomalie>
        </anomalies>
        <codeCommune>TLN</codeCommune>
        <codeDomaine>DOMAINE</codeDomaine>
        <codeNature>BI</codeNature>
        <complement>hhg hh !vv</complement>
        <coordonnees>
            <latitude>43.124900000000025</latitude>
            <longitude>5.9256</longitude>
        </coordonnees>
        <courrier>1154dsd</courrier>
        <dateContr>2013-01-13T17:22:48+01:00</dateContr>
        <dateModification>2014-01-13T17:22:48+01:00</dateModification>
        <dateRecep>2013-01-09T07:00:00+01:00</dateRecep>
        <dispo>INDISPO</dispo>
        <gestPointEau>123</gestPointEau>
        <lieuDit>un lieu dit...</lieuDit>
        <numero>BI TLN 99998</numero>
        <numeroInterne>99998</numeroInterne>
        <observation>obs... hh hubhi api</observation>
        <voie>RUE ROBERT GUILLEMARD</voie>
        <voie2>ALLEE AMIRAL COURBET</voie2>
        <choc>false</choc>
        <codeDiametre>DIAM150</codeDiametre>
        <codeMarque>AVK</codeMarque>
        <codeModele>VEGA</codeModele>
        <debit>20</debit>
        <debitMax>111</debitMax>
        <gestReseau>ABV</gestReseau>
        <numeroSCP>123456789</numeroSCP>
        <pression>6.0</pression>
        <pressionDyn>1.0</pressionDyn>
    </hydrantPibi>
    <hydrantPibi xsi:type="PI" verif="false">
        <anneeFabrication>0</anneeFabrication>
        <anomalies/>
        <codeCommune>TLN</codeCommune>
        <codeDomaine></codeDomaine>
        <codeNature>PI</codeNature>
        <coordonnees>
            <latitude>43.125000000000014</latitude>
            <longitude>5.9285</longitude>
        </coordonnees>
        <courrier></courrier>
        <dateModification>2013-11-14T15:42:11+01:00</dateModification>
        <dateRecep>2013-11-14T15:42:11+01:00</dateRecep>
        <dispo>DISPO</dispo>
        <gestPointEau></gestPointEau>
        <numero>PI TLN 2</numero>
        <numeroInterne>2</numeroInterne>
        <voie>AVENUE JEAN MOULIN</voie>
        <choc>false</choc>
        <codeDiametre></codeDiametre>
        <codeMarque></codeMarque>
        <codeModele></codeModele>
    </hydrantPibi>
    <hydrantPibi xsi:type="BI" verif="false">
        <anomalies/>
        <codeCommune>TLN</codeCommune>
        <codeDomaine></codeDomaine>
        <codeNature>BI</codeNature>
        <coordonnees>
            <latitude>43.125100000000025</latitude>
            <longitude>5.925099999999999</longitude>
        </coordonnees>
        <courrier></courrier>
        <dateContr>2014-01-10T17:20:45+01:00</dateContr>
        <dateModification>2014-01-10T17:20:45+01:00</dateModification>
        <dateRecep>2013-11-14T15:30:11+01:00</dateRecep>
        <dispo>DISPO</dispo>
        <gestPointEau></gestPointEau>
        <numero>BI TLN 99996</numero>
        <numeroInterne>99996</numeroInterne>
        <choc>false</choc>
        <codeDiametre></codeDiametre>
        <codeMarque>BAYARD</codeMarque>
        <codeModele></codeModele>
    </hydrantPibi>
</xsi:hydrants>

3.3. Utilisation par l’application mobile (avec réservation de tournées)

Processus de mise à jour de points d’eau avec réservation d’une tournée :

  1. Récupération du référentiel

  2. Liste des tournées disponibles

  3. Réservation d’une tournée

  4. Mise à jour des PEI

  5. Suppression de la réservation

Récupération du référentiel

  • Requêtes / résultats : Cf. "Société d’affermage / Récupération du référentiel"

Liste des tournées disponibles :

curl -v -u identifiant:••••• -H "Accept: application/xml;charset=utf-8" -X GET "http://remocra.sdisxx.fr/remocra/tournees?dispo=true"
<?xml version="1.0" encoding="UTF-8"?>
<tourneesDispo>
   <tournee nom="Tournée du lac">6</tournee>
</tourneesDispo>

Réservation de la tournée 6 :

curl -v -u identifiant:••••• -X GET "http://remocra.sdisxx.fr/remocra/xml/tournees?tournees=6&lock=true"

Résultat : Cf. "Société d’affermage / Etat des PEI d’une tournée"

Mise à jour des PEI

Requête / résultat : Cf. "Société d’affermage / Mise à jour de points d’eau"

Suppression de la réservation

# On libère toutes les tournées liées à l'utilisateur
curl -v -u identifiant:••••• -H "Content-Type: application/xml;charset=utf-8" -X GET "http://remocra.sdisxx.fr/remocra/xml/tournees?tournees="
<?xml version="1.0" encoding="UTF-8"?>
<xsi:tournees xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />