Contrôleur JSON
-
class ITRocks\Framework\Webservice\Json\Json_Controller
Description
Il s’agit du contrôleur par défaut pour la fonctionnalité
Ce contrôleur peut être utilisé dans différents contextes :json
,
il permet de retourner un résultat JSON en fonction d’un ou plusieurs critères de recherche.- requête AJAX simple avec traitement javascript du résultat
- utilisation pour l’auto-complétion des combos du framework
Voir l’article Créer un contrôleur si vous avez besoin d’étendre ce contrôleur.
Droits d’accès
Le droit
json
est nécessaire pour autoriser l’accès au contrôleur Json.Exemples d’utilisation
Récupération d’un objet complet par son id
Exemple de requête permettant de récupérer les informations de l’objet City (id 22167) :
/Address/City/22167/json
Résultat JSON :
{ "name": "HAUTECOURT ROMANECHE", "postal_code": "01250", "id": 22167 }
Récupération id/valeur d’un objet par son id
Ce type de retour est utile pour l’affichage de liste simple, de liste déroulante, de recherche par auto-complétion…
La clé “value” retournée correspond au résultat de la méthode __toString de l’objet.Exemple :
/Address/Cities/json?id=22167
Résultat JSON :
{ "id": 22167, "value": "HAUTECOURT ROMANECHE" }
Récupération id/valeur d’un objet par critères de recherche
Ce type de retour est utile pour l’affichage de liste simple, de liste déroulante, de recherche par auto-complétion…
Paramètres :
La clé “value” retournée correspond au résultat de la méthode __toString de l’objet.- filters : filtre en fonction de un ou plusieurs critères de recherche.
- term : recherche toutes les valeurs débutant par la clé de recherche sur les propriétés représentant l’objet.
(cf annotation @representative ). - first : retourne le premier objet seulement (correspond à un LIMIT 1).
- limit : retourne un nombre limité d’objet. Exemple &limit=5 retournera uniquement les 5 premiers résultats.
Exemples :
/Address/Cities/json?term=HAUTECOUR
Résultat JSON :
[ { "id": 1870307, "value": "HAUTECOUR" }, { "id": 22167, "value": "HAUTECOURT ROMANECHE" } ]
/Address/Cities/json?term=HAUTECOUR&filters[postal_code]=01250
Résultat JSON :
[ { "id": 22167, "value": "HAUTECOURT ROMANECHE" } ]
Recherche avancée
Paramètres :- search : tableau de critères de recherche,
la clé de recherche correspond à la propriété et la valeur à une expression de recherche :virgule
‘,’ : correspond à un OUespace
‘ ‘ : correspond à un ET
- limit : retourne un nombre limité d’objet. Exemple &limit=5 retournera uniquement les 5 premiers résultats.
- get_properties : permet de préciser quelles sont les propriétés ou sous propriétés que l’on souhaite récupérer
Exemple :
/Address/Cities/json? search[postal_code]=01250,39130&search[name]=HAUTECOURT%&search[country.code]=FR &get_properties[]=country.code&get_properties[]=name
Cette requête permet de retourner le code pays et le nom de la ville pour les villes possédant le code postal 01250 ou 39130
ayant un nom débutant par HAUTECOURT et associées à un pays ayant le code “FR”:Résultat JSON :
{ "1870307": { "country.code": "fr", "name": "HAUTECOUR" }, "22167": { "country.code": "fr", "name": "HAUTECOURT ROMANECHE" } }