Général:FAQ API Select

De WikiFr_dbSQWare
Révision datée du 15 octobre 2024 à 09:39 par Ymauger (discussion | contributions) (Python)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Généralités

Limites de cette section

Cette section n’a pas la prétention de traiter tous les cas possibles d'utilisation de l'API de récupération des données.
Vous pouvez récupérer toutes les données présentées dans des tableaux de l'interface graphique, soit plus de 1500 API.
Si vous possédez des "tableaux customs", ils sont également requêtables par cette technique.
Attention, les URL sont encodées, il faut donc aller récupérer dans la console graphique la correspondance de l'URL dont on veut récupérer les données !
Vous devez être à l'aise avec le concept des API, si ce n'est pas le cas, faites appel au support.

Paramétrage préalable

Afin de pouvoir utiliser l'API de récupération des données, vous devez au préalable avoir paramétré un login avec le type d'authentification "internal_api".
Par défaut, vous devez avoir le login "api_viewer" qui a été créé avec le type d'authentification "internal_api".
Vous pouvez bien évidemment créer un autre compte, changer son mdp, changer son nom ..., le tout sera de s'adapter par rapport à l'exemple !

Exemples d'utilisation

Vous devez adapter les exemples suivants avec vos propres données (URL, user, password, ...)
Ceci représente une base pour du Python, PHP et shell.
Vous pouvez bien évidemment utiliser le langage de votre choix.

Dans cet exemple, nous avons voulu afficher les données de https://webdba.dbsqware.com/oracle/all/backups/LackBackupsJustified.html ...
On va donc dans le menu "Management" (soit du sgbd qui nous intéresse, soit de "All") puis dans "ApiList ou ListeApi".
Là, on trouve le tableau des correspondances URL "en clair" et URL "encodées".
On prend "oracle/all/backups/LackBackupsJustified" et on le met dans le filtre de la colonne "Clear_url".
Cela nous donne /032ef131dbb9ef74f2445fa5aba80942/c52bd74cbffb0ec0bdee4a6c41231c85/backups/LackBackupsJustified.apiOut?user=api_viewer&password=78739d04e87fb581416908b7547cccd0abf1b17f.
On peut donc tenter l'appel direct dans un navigateur pour voir si cela nous sort les données avec l'URL suivante:
https://webdba.dbsqware.com/032ef131dbb9ef74f2445fa5aba80942/c52bd74cbffb0ec0bdee4a6c41231c85/backups/LackBackupsJustified.apiOut?user=api_viewer&password=78739d04e87fb581416908b7547cccd0abf1b17f

Attention, si l'URL de départ comporte des paramètres, ne pas oublier de la rajouter !
Exemple avec : https://webdba.dbsqware.com/oracle/unit/growth/DetailMonth.html?Instance=AORACH&NbMonth=12
Je filtre sur : oracle/unit/growth/DetailMonth
Cela me donne : /032ef131dbb9ef74f2445fa5aba80942/bc1ccb9cdc51f0d131cf6a7a8d6a72c4/growth/DetailMonth.apiOut?user=api_viewer&password=78739d04e87fb581416908b7547cccd0abf1b17f
J'appelle donc : https://webdba.dbsqware.com/032ef131dbb9ef74f2445fa5aba80942/bc1ccb9cdc51f0d131cf6a7a8d6a72c4/growth/DetailMonth.apiOut?user=api_viewer&password=78739d04e87fb581416908b7547cccd0abf1b17f&Instance=AORACH&NbMonth=12

Python

// A venir
// Work in Progess

PHP

  1 <!DOCTYPE html>
  2 <html>
  3 <meta charset="utf-8"/>
  4 <head>
  5 	<title>dbSQWare API Viewer</title>
  6 	 <style>
  7 		 thead, tfoot {
  8 			 background-color: #3f87a6;
  9 			 color: white;
 10 		 }
 11 
 12 		 tbody {
 13 			 background-color: #e4f0f5;
 14 		 }
 15 
 16 		 table {
 17 			 border-collapse: collapse;
 18 			 border: 2px solid grey;
 19 		 }
 20 
 21 		 td, th {
 22 			 border: 1px solid grey;
 23 			 padding: 5px 10px;
 24 		 }
 25 
 26 		 td {
 27 			 text-align: center;
 28 		 }
 29 	 </style>
 30 </head>
 31 <body>
 32 
 33 <h1>dbSQWare API Viewer</h1>
 34 
 35 <?php
 36 
 37 /**
 38 * f_api_request does API request
 39 * 
 40 * @param String $v_method : request method
 41 * @param String $v_url    : website url
 42 * @param Array $t_headers : JSON object headers 
 43 * @param Array $t_data    : JSON object data
 44 * @return $v_response     : API request return
 45 */
 46 function f_api_request($v_method, $v_url, $t_headers=[], $t_data='{}'){
 47  $v_curl = curl_init();
 48 
 49  curl_setopt_array($v_curl, array(
 50 	 CURLOPT_URL            => $v_url,
 51 	 // CURLOPT_PROXY  => 'proxy.domaine:3128', // décommenter si besoin
 52 	 CURLOPT_RETURNTRANSFER => true,
 53 	 CURLOPT_ENCODING       => '',
 54 	 CURLOPT_MAXREDIRS      => 10,
 55 	 CURLOPT_TIMEOUT        => 0,
 56 	 CURLOPT_FOLLOWLOCATION => true,
 57 	 CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_1_1,
 58 	 CURLOPT_SSL_VERIFYHOST => 0,
 59 	 CURLOPT_SSL_VERIFYPEER => 0,
 60 	 CURLOPT_CUSTOMREQUEST  => $v_method,
 61 	 CURLOPT_POSTFIELDS     => $t_data,
 62 	 CURLOPT_HTTPHEADER     => $t_headers,
 63  ));
 64 
 65  $v_response = curl_exec($v_curl);
 66  curl_close($v_curl);
 67  return $v_response;
 68 }
 69 
 70 /**
 71 * f_get_backup_trace get backup traces
 72 * 
 73 * @param Array $t_data  : JSON object data
 74 * @return Array mixed[] : request response
 75 */
 76 function f_get_backup_trace(){
 77  $v_method  = "GET";
 78  $v_url     = "https://webdba.dbsqware.com/032ef131dbb9ef74f2445fa5aba80942/c52bd74cbffb0ec0bdee4a6c41231c85/backups/LackBackupsJustified.apiOut?user=api_viewer&password=78739d04e87fb581416908b7547cccd0abf1b17f";
 79 
 80  $v_response = f_api_request($v_method, $v_url); // API request
 81  return $v_response;
 82 }
 83 
 84 function main(){
 85  // Get backup traces
 86  $v_json_response = json_decode(f_get_backup_trace(), true);
 87 
 88  $t_print = "<table>";
 89 
 90  $v_loop = 0;
 91  foreach($v_json_response as $key => $json){
 92 	 if($v_loop == 0){
 93 		 $t_print .= "<thead><tr>";
 94 		 foreach($json as $key => $value){
 95 			 $t_print .= "<th>$key</th>";
 96 		 }
 97 		 $t_print .= "</tr></thead>";
 98 	 }
 99 
100 	 $t_print .= "<tr>";
101 	 foreach($json as $key => $value){
102 		 $t_print .= "<td>$value</td>";
103 	 }
104 	 $t_print .= "</tr>";
105 	 $v_loop++;
106  }
107 
108  $t_print .= "</table>";
109  echo($t_print);
110 }
111 
112 main();
113 
114 ?>
115 
116 </body>
117 </html>

Shell

#!/bin/sh
## A venir
## Work in Progess