Correspondance d'URL - Appliquer des correctifs JSON
Exécute des requête d'application de correctifs JSON pré-établis selon la correspondance des paramètres de l'URL.
Pour le besoin de l'exemple pratique, cette page utilise plusieurs instance du plugiciel wb-urlmapping
et il pourrait être tous combiné ensemble. Avoir une seule instance c'est l'approche qui est recommendé.
Code source des fichiers JSON
empty.json
{}
data-fr.json
{
"ville": {
"gat": "Gatineau",
"ott": "Ottawa",
"vdm": "Val-des-monts"
},
"fruit": "poire",
"pays": {
"nom": "Canada",
"province": {
"qc": "Québec",
"on": "Ontario",
"ma": "Manitoba"
}
}
}
Application de correctifs
Résultats
Ma ville est: quelques part
Mon fruit est: tous
La configuration wait
permet d'indiquer que le json-manager doit attendre de recevoir des correctifs par un autre plugiciel avant de mettre à jour le contenu affichier par le data-json content.
Code source
<div data-wb-urlmapping='{
"exemple1a": { "action": "patch", "source": "#jmexemple1", "patches": [
{ "op": "add", "path": "/ville", "value": "Gatineau" },
{ "op": "add", "path": "/fruit", "value": "Pomme" }
]
},
"exemple1b": { "action": "patch", "source": "#jmexemple1", "patches": [
{ "op": "add", "path": "/ville", "value": "Ottawa" },
{ "op": "add", "path": "/fruit", "value": "Orange" }
]
},
"exemple1c": { "action": "patch", "source": "#jmexemple1", "patches": [
{ "op": "add", "path": "/ville", "value": "Hull" }
]
},
"exemple1d": { "action": "patch", "source": "#jmexemple1", "patches": [
{ "op": "add", "path": "/fruit", "value": "Kiwi" }
]
},
"multiplequery": true
}'></div>
<ul>
<li><a href="?#ex1">Vide <code>?</code></a></li>
<li><a href="?exemple1a#ex1">Gatineau et Pomme <code>?exemple1a</code></a></li>
<li><a href="?exemple1b#ex1">Ottawa et Orange <code>?exemple1b</code></a></li>
<li><a href="?exemple1c&exemple1d#ex1">Hull et Kiwi <code>?exemple1c&exemple1d</code></a></li>
</ul>
<section class="well" id="jmexemple1" data-wb-jsonmanager='{
"url": "demo/empty.json",
"name": "exemple1",
"wait": true
}'>
<h3 class="mrgn-tp-sm">Résultats</h3>
<p>Ma ville est: <span data-json-replace="#[exemple1]/ville">quelques part</span></p>
<p>Mon fruit est: <span data-json-replace="#[exemple1]/fruit">tous</span></p>
</section>
Utiliser les valeur de la requête de la pages pour appliquer des correctifs
Par défauts
La valeur du paramètre sera utilisé en tant que clef afin de le l'objet vers l'objet parent.
- Vide
?
- Gatineau
?ville=gat
- Ottawa
?ville=ott
- Val-des-monts
?ville=vdm
- Hull
?ville=hull
(Repli sur la valeur par défautgat
) - Hull
?ville=hul
(Fait rien)
La ville sélectionné est : quelques part
Code source
<ul data-wb-urlmapping='{ "ville" : { "action": "patch", "source": "#jmexemple2", "base": "/ville", "match": "^[a-z][a-z][a-z]$", "default": "gat" } }'>
<li><a href="?#ex2">Empty <code>?</code></a></li>
<li><a href="?ville=gat#ex2">Gatineau <code>?ville=gat</code></a></li>
<li><a href="?ville=ott#ex2">Ottawa <code>?ville=ott</code></a></li>
<li><a href="?ville=vdm#ex2">Val-des-monts <code>?ville=vdm</code></a></li>
<li><a href="?ville=hull#ex2">Hull <code>?ville=hull</code></a> (Fallback on default <code>gat</code>)</li>
<li><a href="?ville=hul#ex2">Hull <code>?ville=hul</code></a> (Do nothing)</li>
</ul>
<p id="jmexemple2" data-wb-jsonmanager='{ "url": "demo/data-fr.json", "name": "exemple2", "wait": true }'>La ville sélectionné est : <span data-json-replace="#[exemple2]/ville">quelques part</span></p>
Être précis dans la correspondance
Les configuration suivante vont écraser/contourner les fonctionalitées par défaut pour l'application des correctifs.
- Vide
?
- La base est "/ville", repli sur le défaut
?ex3a
- La base est "/ville", affiche Gatineau
?ex3a=gat
- La base est "/ville", Affiche Ottawa
?ex3a=ott
- La base est "/ville" avec la valeur "gat" défini, affiche Gatineau
?ex3b
- La base est "/ville" avec la valeur "ott" défini, affiche Ottawa
?ex3c=exemple
- La base est "/province" avec la racine "/pays/", repli sur le défaut
?ex3d
- La base est "/province" avec la racine "/pays/", affiche Ontario
?ex3d=on
- La base est "/province" avec la racine "/pays/", affiche Québec
?ex3d=qc
Résultat:
- Ville: non définie
- Province: non défini
Code source
<ul data-wb-urlmapping='{
"ex3a" : { "action": "patch", "source": "#jmexemple3", "base": "/ville", "match": "^[a-z][a-z][a-z]$", "default": "vdm" },
"ex3b" : { "action": "patch", "source": "#jmexemple3", "base": "/ville", "qval": "gat" },
"ex3c=exemple" : { "action": "patch", "source": "#jmexemple3", "base": "/ville", "qval": "ott" },
"ex3d" : { "action": "patch", "source": "#jmexemple3", "base": "/pays/province", "match": "^[a-z][a-z]$", "default": "ma" }
}'>
<li><a href="?#ex3">Vide <code>?</code></a></li>
<li><a href="?ex3a#ex3">La base est "/ville", repli sur le défaut <code>?ex3a</code></a></li>
<li><a href="?ex3a=gat#ex3">La base est "/ville", affiche Gatineau <code>?ex3a=gat</code></a></li>
<li><a href="?ex3a=ott#ex3">La base est "/ville", Affiche Ottawa <code>?ex3a=ott</code></a></li>
<li><a href="?ex3b#ex3">La base est "/ville" avec la valeur "gat" défini, affiche Gatineau <code>?ex3b</code></a></li>
<li><a href="?ex3c=exemple#ex3">La base est "/ville" avec la valeur "ott" défini, affiche Ottawa <code>?ex3c=exemple</code></a></li>
<li><a href="?ex3d#ex3">La base est "/province" avec la racine "/pays/", repli sur le défaut <code>?ex3d</code></a></li>
<li><a href="?ex3d=on#ex3">La base est "/province" avec la racine "/pays/", affiche Ontario <code>?ex3d=on</code></a></li>
<li><a href="?ex3d=qc#ex3">La base est "/province" avec la racine "/pays/", affiche Québec <code>?ex3d=qc</code></a></li>
</ul>
<p>Résultat:</p>
<ul id="jmexemple3" data-wb-jsonmanager='{ "url": "demo/data-fr.json", "name": "exemple4", "wait": true }'>
<li>Ville: <span data-json-replace="#[exemple4]/ville">non définie</span></li>
<li>Province: <span data-json-replace="#[exemple4]/country/province">non défini</span></li>
</ul>
Détails de la page
- Date de modification :