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.
Le référentiel est récupéré via des requêtes HTTP GET :
-
Par type de référentiel :
-
Tous les éléments en une seule opération :
Le référentiel permet de faire la correspondance entre les codes employés et les libellés vus dans Remocra.
L’ensemble des tournées est consultable avec la requête suivante :
-
http://remocra.sdisxx.fr/remocra/tournees?dispo=false
-
Méthode HTTP : GET
-
Entête HTTP : Accept=application/xml
-
En entrée, paramètre "dispo=false"
-
Valeur false pour ne pas filtrer sur l’absence de réservation
-
-
La liste des tournées disponibles uniquement est récupérée via la requête :
-
http://remocra.sdisxx.fr/remocra/tournees?dispo=true
-
Méthode HTTP : GET
-
Entête HTTP : Accept=application/xml
-
En entrée, paramètre "dispo=true", valeur par défaut
-
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.
-
-
La mise à jour de points d’eau est réalisée en postant la description XML des PEI à l’URL suivante :
-
http://remocra.sdisxx.fr/remocra/xml/hydrants
-
Méthode HTTP : POST
-
Corps posté : élement de type 'lstHydrants' (voir le schéma XSD)
-
La mise à jour des pourcentages des tournées est réalisée en postant la description XML des tournées à l’URL suivante :
-
http://remocra.sdisxx.fr/remocra/xml/pourcentages
-
Méthode HTTP : POST
-
Corps posté : élement de type 'lstTournees' (voir le schéma XSD)
-
Utiliser la méthode Basic-auth.
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.
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"
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>
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>
# 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
<?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>
Processus de mise à jour de points d’eau avec réservation d’une tournée :
-
Récupération du référentiel
-
Liste des tournées disponibles
-
Réservation d’une tournée
-
Mise à jour des PEI
-
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" />