Présentation plugin json

Voici les informations sur mon nouveau plugin :

  • Nom et id : json / json
  • Il permet de récupérer un flux json et de le parcourir à l’aide du langage de requête jsonpath. Un équipement = 1 flux json / une commande info = une expression jsonpath
  • Langages utilisés php
  • Pas de démon - pas de dépendances - cron paramétrable par équipement
  • Pas de panel dédié.
  • Payant || gratuit ? à voir
2 « J'aime »

Pour répondre d’avance à la remarque qui va arriver « mais le plugin script permet déjà ça ! », le plugin script lance une requête par commande, même si on veut récupérer plusieurs données dans le même flux json.

Dans un premier temps, le plugin permettra uniquement des commandes info extraites d’un flux json provenant d’une requête GET ou POST avec possibilité d’ajouter des headers.

Dans un second temps, j’ajouterai peut-être la possibilité d’avoir des commandes actions, mais il faut encore que je réfléchisse à la spécification de cette fonctionnalité.

Je réfléchit aussi à la possibilité de faire une authentification OpenIdConnect, mais rien n’est encore sûr.

L’idée globale, est de pouvoir se connecter à des APIs rest simple sans avoir de plugin dédiés.

Ce n’est pas tout à fait exact. Le plugin fait une requête à la 1ère commande et met le résultat en cache pour réutilisation si l’url est la même dans les autres commandes.

Extrait de la fonction execute du fichier plugins/script/core/script.class.php pour le type json

			case 'json':
			$request = str_replace('"', '', $request);
			if($this->getType() == 'info' && isset(script::$_requet_cache[$this->getConfiguration('urlJson')])){
				$json_str = script::$_requet_cache[$this->getConfiguration('urlJson')];
			}else{
				if ($this->getConfiguration('json_username') != '' && $this->getConfiguration('json_password') != '') {
					$request_http = new com_http($this->getConfiguration('urlJson'), $this->getConfiguration('json_username'), $this->getConfiguration('json_password'));

Le même mécanisme de cache des résultats des requêtes existe aussi pour les types http, script, xml et html

Ca date de 2020: Requetes multiples sur un json. Défaut UI de la config des cmds

2 « J'aime »

Au temps pour moi.
Reste que l’utilisation de jsonpath permet d’etre beaucoup plus précis dans la requête.
Et j’ai aussi ajouté la possibilité d’envoyer des headers et un body, eu même pouvant être variabilisés à l’aide d’autre commande info.