Général
Accueil
 
MyRemoteSql
Présentation
Installation
Documentation Utilisateur
Documentation Technique
Skins
WebServices
Faq
Download
ToDo
ChangeLog
Contact
Crédits
Visiteurs
Visteurs
Vendredi 19 avril 2024

MyRemoteSql - WebServices

WebService SOAP

MyRemoteSql fournit un WebService utilisant le protocole SOAP. Ce WebService permet d'exécuter une requête SQL sur N Serveurs. Le client peut être écrit en Php, Python, Java ... tout langage implémentant le protocole SOAP.

Appel du WebService

Localisation : http://AdresseduServeur/myremotesql/ws_mrssoap.php

Fonction distante :

function wsExecuteSql($pTxtSql,$pServeurs,$pTypeSortie,$pPreSortie)

Arguments :

$pTxtSql : string requête SQL

$pServeurs : array tableau des serveurs au format (No Id serveur; nom serveur;ip ou nom serveur;port mysql;nom de base;utilisateur;mot de passe;)

$pTypeSortie : string type de sortie XML, HTML, CSV, Texte

$pPreSortie : string type de présentation de sortie S-SQL ou SQL-S

Retour : un tableau contenant la sortie

Exemple Php

// Librairie nusoap
include('Lib/nusoap.php'); 

// définition de la liste des serveurs à traiter
$listServeurs = array();
$listServeurs[]="1;Mysql Local;localhost;3306;test;root;;";
$listServeurs[]="2;Mysql Local de test;localhost;3306;test;root;;";

// définition de l'Url du Webservice
$urlWebService = 'http://127.0.0.1/test/myremotesql/ws_mrssoap.php';

// définition de la requête SQL à exécuter (Select, Insert ...)
$txtSql = "show tables";

// définition du type de sortie
$typeSortie = "XML";

// définition des parametres du Webservice (Requete SQL, Liste de serveurs, type de sortie)
$param = array('pTxtSql' => $txtSql, 'pServeurs' => $listServeurs, 'pTypeSortie' => $typeSortie, 'pPreSortie'=> $preSortie);

// Création du client SOAP
$client = new soapclient($urlWebService);

// Appel de la fonction distante
$result = $client->call('wsExecuteSql', $param);

// Erreur ?
if($client->fault)
{
	print "Erreur ".$result['faultcode'] ." ". $result['faultstring'];
}

// affichage BRUT du résultat

var_dump($result);

// Exploitation du résultat ...
//

  

WebService XML-RPC

MyRemoteSql fournit un WebService utilisant le protocole XML-RPC. Ce WebService permet d'exécuter une requête SQL sur N Serveurs. Le client peut être écrit en Php, Python, Java ... tout langage implémentant le protocole XML-RPC.

Appel du WebService

Localisation : http://AdresseduServeur/myremotesql/ws_mrsxmlrpc.php

Fonction distante :

function wsExecuteSql($pTxtSql,$pServeurs,$pTypeSortie)

Arguments :

$pTxtSql : string requête SQL

$pServeurs : array tableau des serveurs au format (No Id serveur;nom serveur;ip ou nom serveur;port mysql;nom de base;utilisateur;mot de passe;)

$pTypeSortie : string type de sortie XML, HTML, CSV, Texte

$pPreSortie : string type de présentation de sortie S-SQL ou SQL-S

Retour : un tableau contenant la sortie

Exemple Rebol

Rebol 
[
title: "Exemple de client Xml-RPC à adapter"
auteur: "myRemoteSql"
commentaires: "Utilise Rebol + librairies XML-RPC"
]

; Includes des librairies XML-RPC
do %Lib/xml-object.r
do %Lib/xml-parse.r
do %Lib/xmlrpc-client.r
do %Lib/xmlrpc-marshaler.r
do %Lib/xml-writer.r
;

; Définition le la Requête SQL
txtSql: "show databases"

; Définition du type de Sortie
typeSortie: "XML"

; Définition de la présentation de Sortie
preSortie: "S-SQL"

; Définition de l'Url du webService, à modififier
url: make url! http://127.0.0.1/myremotesql/ws_mrsxmlrpc.php

; Définition de la liste des serveurs : peut-être récupérée d'un fichier, d'une table ...
listServeurs: make hash! ["Serveur 1" "1;Serveur 1;localhost;3306;test;root;;" "Serveur 2" "2;Serveur2;localhost;3306;test;root;;"] 

; Connexion au Webservice
remote: make xmlrpc-client []
remote/set-server url

; Mode Debug : mettre à true
;remote/set-debug true

; Récup de la liste des méthodes du WebServices
print remote/exec [system.listMethods]

; Appel de la fonction distante
resultat: remote/exec [mrs.wsExecuteSql txtSql listServeurs typeSortie preSortie]

; Affichage du résultat brut, le résultat est un Hash!
print resultat

; Exploitation du résultat ... à personnaliser ... Mise à jour IHM, SGBD, Fichier, Mail ...
write %result.txt resultat
;
; Fin programme : arrêt + Quit
Input
quit