« Général:FAQ API backup » : différence entre les versions
Aller à la navigation
Aller à la recherche
Aucun résumé des modifications |
|||
| Ligne 78 : | Ligne 78 : | ||
<?php | <?php | ||
$ | $staticToken = ""; | ||
/** | /** | ||
* | * Does API request. | ||
* | * | ||
* @param | * @param string $method : Request method | ||
* @param | * @param string $url : Website url | ||
* @param | * @param array $headers : JSON object headers | ||
* @param | * @param string $data : JSON object data | ||
* @return | * @return string | ||
*/ | */ | ||
function | function apiRequest(string $method, string $url, array $headers = [], $data = '{}'): string | ||
$ | { | ||
$curl = curl_init(); | |||
curl_setopt_array($ | curl_setopt_array($curl, [ | ||
CURLOPT_URL => $ | CURLOPT_URL => $url, | ||
CURLOPT_RETURNTRANSFER => true, | CURLOPT_RETURNTRANSFER => true, | ||
CURLOPT_ENCODING => '', | CURLOPT_ENCODING => '', | ||
| Ligne 100 : | Ligne 101 : | ||
CURLOPT_FOLLOWLOCATION => true, | CURLOPT_FOLLOWLOCATION => true, | ||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, | CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, | ||
CURLOPT_CUSTOMREQUEST => $ | CURLOPT_SSL_VERIFYHOST => 0, | ||
CURLOPT_POSTFIELDS => $ | CURLOPT_SSL_VERIFYPEER => 0, | ||
CURLOPT_HTTPHEADER => $ | CURLOPT_CUSTOMREQUEST => $method, | ||
CURLOPT_POSTFIELDS => $data, | |||
CURLOPT_HTTPHEADER => $headers, | |||
]); | |||
$ | $response = curl_exec($curl); | ||
return $ | curl_close($curl); | ||
return $response; | |||
} | } | ||
/** | /** | ||
* | * Create new backup trace. | ||
* | * | ||
* @param | * @param array $data : JSON object data | ||
* @return | * @return bool | ||
*/ | */ | ||
function | function postBackupTrace($data): bool | ||
global $ | { | ||
global $staticToken; | |||
$ | // Init request | ||
$ | $method = 'POST'; | ||
if( | $url = "http://admin-webdba.dbsqware.com/lib/apiAudit.php?type=backup&token={$staticToken}"; | ||
echo( | $headers = ['Content-Type: application/json']; | ||
$data = json_encode($data, JSON_FORCE_OBJECT); | |||
// API request | |||
$response = apiRequest($method, $url, $headers=$headers, $data=$data); | |||
if (empty($response)) { | |||
echo('Failure of the API request !'); | |||
return 0; | return 0; | ||
} | } | ||
$response = json_decode($response, true); | |||
echo("Error message [$ | if (array_key_exists('error_message', $response)) { | ||
return | echo("Error message [{$response['error_message']}]"); | ||
return 0; | |||
} | } | ||
echo('Insert with success !'); | |||
return 1; | |||
} | } | ||
function main(){ | function main(): void | ||
{ | |||
// Post new backup trace | // Post new backup trace | ||
$ | $data = [ | ||
"dbalias" => "AATestAPI_Upd", | |||
"database_name" => "master", | |||
"beginning" => "2022-07-11 09:20:00", | |||
"bck_type" => "full stripe 1 comp 1 NewSyntax", | |||
"tools" => "dump", | |||
"end_trt" => "2022-07-11 09:25:00", | |||
"size_bck" => "59.26" | |||
]; | |||
postBackupTrace($data); | |||
} | } | ||
Version du 25 juin 2025 à 15:26
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 mise à jour des indicateurs.
Vous devez être à l'aise avec le concept des API et la gestion de token, si ce n'est pas le cas, faites appel au support.
Attention, vous allez mettre à jour les tables de traçage des jobs, vous devez savoir ce que vous faites !
Paramétrage préalable
Afin de pouvoir utiliser l'API des indicateurs, vous devez au préalable avoir paramétré un token statique pour l'instance cible.
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, Shell et PowerShell.
Vous pouvez bien évidemment utiliser le langage de votre choix.
Python
import requests
import json
v_static_token = 123456
"""
f_api_request does API request
:param v_method : request method
:param v_url : website url
:param t_headers : JSON object headers
:param t_data : JSON object data
:return : API request return
"""
def f_api_request(v_method, v_url, t_headers={}, t_data={}):
v_response = requests.request(v_method, v_url, headers=t_headers, data=t_data) # API request
return v_response
"""
f_post_backup_trace create new backup trace object
:param t_data : JSON object data
:return : request response
"""
def f_post_backup_trace(t_data):
v_method = "POST"
v_url = "http://admin-webdba.dbsqware.com/lib/apiAudit.php?type=backup&token="+str(v_static_token)
t_headers = {'Content-Type': 'application/json'}
t_data = json.dumps(t_data)
v_response = f_api_request(v_method, v_url, t_headers=t_headers, t_data=t_data) # API request
v_json_response = json.loads(v_response.text)
if "error_message" not in v_json_response:
print("Insert with success !")
return 1
else:
v_error_message = v_json_response['error_message']
print("Error message ["+v_error_message+"]")
return 0
def main():
# Post new backup trace
t_data = {
"dbalias" :"AATestAPI_Upd",
"database_name":"master",
"beginning" :"2022-07-11 09:30:00",
"bck_type" :"full stripe 1 comp 1 NewSyntax",
"tools" :"dump",
"end_trt" :"2022-07-11 09:35:00",
"size_bck" :"59.26"
}
f_post_backup_trace(t_data)
if __name__ == '__main__':
main()
PHP
<?php
$staticToken = "";
/**
* Does API request.
*
* @param string $method : Request method
* @param string $url : Website url
* @param array $headers : JSON object headers
* @param string $data : JSON object data
* @return string
*/
function apiRequest(string $method, string $url, array $headers = [], $data = '{}'): string
{
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
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 => $method,
CURLOPT_POSTFIELDS => $data,
CURLOPT_HTTPHEADER => $headers,
]);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
/**
* Create new backup trace.
*
* @param array $data : JSON object data
* @return bool
*/
function postBackupTrace($data): bool
{
global $staticToken;
// Init request
$method = 'POST';
$url = "http://admin-webdba.dbsqware.com/lib/apiAudit.php?type=backup&token={$staticToken}";
$headers = ['Content-Type: application/json'];
$data = json_encode($data, JSON_FORCE_OBJECT);
// API request
$response = apiRequest($method, $url, $headers=$headers, $data=$data);
if (empty($response)) {
echo('Failure of the API request !');
return 0;
}
$response = json_decode($response, true);
if (array_key_exists('error_message', $response)) {
echo("Error message [{$response['error_message']}]");
return 0;
}
echo('Insert with success !');
return 1;
}
function main(): void
{
// Post new backup trace
$data = [
"dbalias" => "AATestAPI_Upd",
"database_name" => "master",
"beginning" => "2022-07-11 09:20:00",
"bck_type" => "full stripe 1 comp 1 NewSyntax",
"tools" => "dump",
"end_trt" => "2022-07-11 09:25:00",
"size_bck" => "59.26"
];
postBackupTrace($data);
}
main();
?>
Shell
#!/bin/sh
v_static_token="123456"
v_tempfile=api_dbSQWare.tmp
<<COMMENTS
f_post_backup_trace create new backup trace object
:param t_data : JSON object data
:return : request response
COMMENTS
f_post_backup_trace(){
t_data="$1"
curl --location --request POST "http://admin-webdba.dbsqware.com/lib/apiAudit.php?type=backup&token=$v_static_token" -H "Content-Type:application/json" -d "$t_data" > $v_tempfile 2>$v_tempfile.err
if [ $(grep -c '"error_message"' $v_tempfile) -eq 0 ]
then
echo "Insert with success !"
return 0
else
v_error_message=`cat $v_tempfile|grep '\"error_message\": \"' | cut -d'"' -f4`
echo "Error message [$v_error_message]"
return 1
fi
}
main(){
# Post new backup trace
t_data='{"dbalias":"AATestAPI_Upd","database_name":"master","beginning":"2022-07-11 09:35:00","bck_type":"full stripe 1 comp 1 NewSyntax","tools":"dump","end_trt":"2022-07-11 09:40:00","size_bck":"59.26"}'
f_post_backup_trace "$t_data"
}
main
PowerShell
$v_static_token = 123456
$v_tempfile = ".\api_dbSQWare.json"
<#
f_post_backup_trace create new backup trace object
:param t_data : JSON object data
:return : request response
#>
function f_post_backup_trace($t_data){
$t_params = @{
Method = "Post"
Uri = "http://admin-webdba.dbsqware.com/lib/apiAudit.php?type=backup&token=$v_static_token"
Body = $t_data | ConvertTo-Json
ContentType = "application/json"
}
Invoke-RestMethod @t_params -OutFile $v_tempfile
$v_response = Get-Content -Path $v_tempfile | ConvertFrom-Json
if(!$v_response.error_message){
Write-Output "Insert with success !"
return 1
}
else{
$v_error_message = $v_response.error_message
Write-Output "Error message [$v_error_message]"
return 0
}
}
function main{
# Post request API
$t_data = @{
dbalias = "AATestAPI_Upd"
database_name = "master"
beginning = "2022-07-11 10:35:00"
bck_type = "full stripe 1 comp 1 NewSyntax"
tools = "dump"
end_trt = "2022-07-11 10:40:00"
size_bck = "59.26"
}
f_post_backup_trace($t_data)
}
main