« Général:FAQ API backup » : différence entre les versions

De WikiFr_dbSQWare
Aller à la navigation Aller à la recherche
Page créée avec « ==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 du réf... »
 
Aucun résumé des modifications
Ligne 2 : Ligne 2 :


===Limites de cette section===
===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 du référentiel.<br>
Cette section n’a pas la prétention de traiter tous les cas possibles d'utilisation de l'API de mise à jour des indicateurs.<br>
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.<br>
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.<br>
Attention, vous allez mettre à jour la table du référentiel général, insert et/ou update, vous devez savoir ce que vous faites !<br>
Attention, vous allez mettre à jour les tables de traçage des jobs, vous devez savoir ce que vous faites !<br>


===Paramétrage préalable===
===Paramétrage préalable===
Afin de pouvoir utiliser l'API "update", vous devez au préalable avoir paramétré un login avec le type d'authentification "internal_api_update".
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==
==Exemples d'utilisation==
Vous devez adapter les exemples suivants avec vos propres données (URL, user, password, ...)<br/>
Vous devez adapter les exemples suivants avec vos propres données (URL, user, password, ...)<br/>
Ceci représente une base pour du Python, PHP et shell.<br/>
Ceci représente une base pour du Python, PHP, Shell et PowerShell.<br/>
Vous pouvez bien évidemment utiliser le langage de votre choix.<br/>
Vous pouvez bien évidemment utiliser le langage de votre choix.<br/>



Version du 25 juin 2025 à 09:52

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

$v_static_token = 123456;

/**
 * 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_RETURNTRANSFER => true,
        CURLOPT_ENCODING       => '',
        CURLOPT_MAXREDIRS      => 10,
        CURLOPT_TIMEOUT        => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST  => $v_method,
        CURLOPT_POSTFIELDS     => $t_data,
        CURLOPT_HTTPHEADER     => $t_headers,
    ));

    $v_response = curl_exec($v_curl);
    return $v_response;
}

/**
 * f_post_backup_trace create new backup trace object
 * 
 * @param Array $t_data          : JSON object data
 * @return Array mixed[]         : request response
 */
function f_post_backup_trace($t_data){
    global $v_static_token;
    $v_method  = "POST";
    $v_url     = "http://admin-webdba.dbsqware.com/lib/apiAudit.php?type=backup&token=".$v_static_token;
    $t_headers = array('Content-Type: application/json');
    $t_data    = json_encode($t_data, JSON_FORCE_OBJECT);

    $v_response = f_api_request($v_method, $v_url, $t_headers=$t_headers, $t_data=$t_data); // API request
    $v_json_response = json_decode($v_response, true);
    if(!array_key_exists("error_message", $v_json_response)){
        echo("Insert with success !");
        return 0;
    }
    else{
        $v_error_message = $v_json_response['error_message'];
        echo("Error message [$v_error_message]");
        return 1;
    }
}

function main(){
    // Post new backup trace
    $t_data = array(
                        "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"
                    );

    f_post_backup_trace($t_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