Général:FAQ API Select : Différence entre versions
m (→Python) |
|||
(4 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 35 : | Ligne 35 : | ||
===Python=== | ===Python=== | ||
// A venir | // A venir | ||
+ | // Work in Progess | ||
===PHP=== | ===PHP=== | ||
− | + | <syntaxhighlight lang="php" line> | |
− | + | <!DOCTYPE html> | |
− | + | <html> | |
− | + | <meta charset="utf-8"/> | |
− | + | <head> | |
− | + | <title>dbSQWare API Viewer</title> | |
− | + | <style> | |
− | + | thead, tfoot { | |
− | + | background-color: #3f87a6; | |
− | + | color: white; | |
− | + | } | |
− | + | ||
− | + | tbody { | |
− | + | background-color: #e4f0f5; | |
− | + | } | |
− | + | ||
− | + | table { | |
− | + | border-collapse: collapse; | |
− | + | border: 2px solid grey; | |
− | + | } | |
− | + | ||
− | + | td, th { | |
− | + | border: 1px solid grey; | |
− | + | padding: 5px 10px; | |
− | + | } | |
− | + | ||
− | + | td { | |
− | + | text-align: center; | |
− | + | } | |
− | + | </style> | |
− | + | </head> | |
− | + | <body> | |
− | + | ||
− | + | <h1>dbSQWare API Viewer</h1> | |
− | + | ||
− | + | <?php | |
− | + | ||
− | + | /** | |
− | + | * f_api_request does API request | |
− | + | * | |
− | + | * @param String $v_method : request method | |
− | + | * @param String $v_url : website url | |
− | + | * @param Array $t_headers : JSON object headers | |
− | + | * @param Array $t_data : JSON object data | |
− | + | * @return $v_response : API request return | |
− | + | */ | |
− | + | function f_api_request($v_method, $v_url, $t_headers=[], $t_data='{}'){ | |
− | + | $v_curl = curl_init(); | |
− | + | ||
− | + | curl_setopt_array($v_curl, array( | |
− | + | CURLOPT_URL => $v_url, | |
− | + | // CURLOPT_PROXY => 'proxy.domaine:3128', // décommenter si besoin | |
− | + | CURLOPT_RETURNTRANSFER => true, | |
− | + | CURLOPT_ENCODING => '', | |
− | + | CURLOPT_MAXREDIRS => 10, | |
− | + | CURLOPT_TIMEOUT => 0, | |
− | + | CURLOPT_FOLLOWLOCATION => true, | |
− | + | CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, | |
− | + | CURLOPT_SSL_VERIFYHOST => 0, | |
− | + | CURLOPT_SSL_VERIFYPEER => 0, | |
− | + | CURLOPT_CUSTOMREQUEST => $v_method, | |
− | + | CURLOPT_POSTFIELDS => $t_data, | |
− | + | CURLOPT_HTTPHEADER => $t_headers, | |
− | + | )); | |
− | + | ||
− | + | $v_response = curl_exec($v_curl); | |
− | + | curl_close($v_curl); | |
+ | return $v_response; | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * f_get_backup_trace get backup traces | ||
+ | * | ||
+ | * @param Array $t_data : JSON object data | ||
+ | * @return Array mixed[] : request response | ||
+ | */ | ||
+ | function f_get_backup_trace(){ | ||
+ | $v_method = "GET"; | ||
+ | $v_url = "https://webdba.dbsqware.com/032ef131dbb9ef74f2445fa5aba80942/c52bd74cbffb0ec0bdee4a6c41231c85/backups/LackBackupsJustified.apiOut?user=api_viewer&password=78739d04e87fb581416908b7547cccd0abf1b17f"; | ||
+ | |||
+ | $v_response = f_api_request($v_method, $v_url); // API request | ||
+ | return $v_response; | ||
+ | } | ||
+ | |||
+ | function main(){ | ||
+ | // Get backup traces | ||
+ | $v_json_response = json_decode(f_get_backup_trace(), true); | ||
+ | |||
+ | $t_print = "<table>"; | ||
+ | |||
+ | $v_loop = 0; | ||
+ | foreach($v_json_response as $key => $json){ | ||
+ | if($v_loop == 0){ | ||
+ | $t_print .= "<thead><tr>"; | ||
+ | foreach($json as $key => $value){ | ||
+ | $t_print .= "<th>$key</th>"; | ||
+ | } | ||
+ | $t_print .= "</tr></thead>"; | ||
+ | } | ||
+ | |||
+ | $t_print .= "<tr>"; | ||
+ | foreach($json as $key => $value){ | ||
+ | $t_print .= "<td>$value</td>"; | ||
+ | } | ||
+ | $t_print .= "</tr>"; | ||
+ | $v_loop++; | ||
} | } | ||
− | + | ||
− | + | $t_print .= "</table>"; | |
− | + | echo($t_print); | |
− | + | } | |
− | + | ||
− | + | main(); | |
− | + | ||
− | + | ?> | |
− | + | ||
− | + | </body> | |
− | + | </html> | |
− | + | </syntaxhighlight> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===Shell=== | ===Shell=== | ||
#!/bin/sh | #!/bin/sh | ||
## A venir | ## A venir | ||
+ | ## Work in Progess |
Version actuelle datée du 15 octobre 2024 à 09:39
Sommaire
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