Général:FAQ API MAJ : Différence entre versions

De WikiFr_dbSQWare
Aller à : navigation, rechercher
(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... »)
 
(Shell)
 
(3 révisions intermédiaires par le même utilisateur non affichées)
Ligne 4 : Ligne 4 :
 
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 du référentiel.<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 de référentiel, insert et/ou update, vous devez savoir ce que vous faites !<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>
  
 
===Paramétrage préalable===
 
===Paramétrage préalable===
Ligne 15 : Ligne 15 :
  
 
===Python===
 
===Python===
import requests
+
<syntaxhighlight lang="python" line>
import json
+
import requests
+
import json
v_bearer_token = ""
+
 
+
v_bearer_token = ""
"""
+
 
f_api_request does API request
+
"""
+
f_api_request does API request
:param v_method  : request method
+
 
:param v_url    : website url
+
:param v_method  : request method
:param t_headers : JSON object headers  
+
:param v_url    : website url
:param t_data    : JSON object data
+
:param t_headers : JSON object headers  
:return          : API request return
+
: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
+
def f_api_request(v_method, v_url, t_headers={}, t_data={}):
    return v_response   
+
v_response = requests.request(v_method, v_url, headers=t_headers, data=t_data) # API request
+
return v_response   
"""
+
 
f_get_bearer_token recovers bearer token
+
"""
+
f_get_bearer_token recovers bearer token
:param v_username : account username
+
 
:param v_password : account password
+
:param v_username : account username
:return          : bearer token
+
:param v_password : account password
"""
+
:return          : bearer token
def f_get_bearer_token(v_username, v_password):
+
"""
    v_method  = "POST"
+
def f_get_bearer_token(v_username, v_password):
    v_url    = "http://my_sqwareweb_url/lib/apiUpdate_login.php"
+
v_method  = "POST"
    t_headers = {'Content-Type': 'application/json'}
+
v_url    = "http://my_sqwareweb_url/lib/apiUpdate_login.php"
    t_data    = json.dumps({"username":v_username,"password":v_password}) # Crendentials for connection
+
t_headers = {'Content-Type': 'application/json'}
   
+
t_data    = json.dumps({"username":v_username,"password":v_password}) # Crendentials for connection
    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)
+
  v_response = f_api_request(v_method, v_url, t_headers=t_headers, t_data=t_data) # API request
    if "error_message" not in v_json_response:
+
v_json_response = json.loads(v_response.text)
        global v_bearer_token
+
if "error_message" not in v_json_response:
        v_bearer_token = v_json_response['results'][0]['token'] # Get token response
+
global v_bearer_token
        print("Bearer token : "+v_bearer_token)
+
v_bearer_token = v_json_response['results'][0]['token'] # Get token response
        return 1
+
print("Bearer token : "+v_bearer_token)
    else:
+
return 1
        v_error_message = v_json_response['error_message']
+
else:
        print("Error message ["+v_error_message+"]")
+
v_error_message = v_json_response['error_message']
        return 0
+
print("Error message ["+v_error_message+"]")
+
return 0
"""
+
 
f_get_instance recovers instance object
+
"""
+
f_get_instance recovers instance object
:param v_dbalias      : dbalias name
+
 
:return              : instance object
+
:param v_dbalias      : dbalias name
"""
+
:return              : instance object
def f_get_instance(v_dbalias):
+
"""
    v_method  = "GET"
+
def f_get_instance(v_dbalias):
    v_url    = "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias="+v_dbalias
+
v_method  = "GET"
    t_headers = {'Authorization':'Bearer '+v_bearer_token, 'Content-Type': 'application/json'}
+
v_url    = "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias="+v_dbalias
   
+
t_headers = {'Authorization':'Bearer '+v_bearer_token, 'Content-Type': 'application/json'}
    v_response = f_api_request(v_method, v_url, t_headers=t_headers) # API request
+
 
    v_json_response = json.loads(v_response.text)
+
  v_response = f_api_request(v_method, v_url, t_headers=t_headers) # API request
    if "error_message" not in v_json_response:
+
v_json_response = json.loads(v_response.text)
        v_instance = v_json_response['results'][0] # Get instance
+
if "error_message" not in v_json_response:
        print(v_instance)
+
v_instance = v_json_response['results'][0] # Get instance
        return 1
+
print(v_instance)
    else:
+
return 1
        v_error_message = v_json_response['error_message']
+
else:
        print("Error message ["+v_error_message+"]")
+
v_error_message = v_json_response['error_message']
        return 0
+
print("Error message ["+v_error_message+"]")
+
return 0
"""
+
 
f_get_instances recovers instances objects
+
"""
+
f_get_instances recovers instances objects
:return              : instances objects
+
 
"""
+
:return              : instances objects
def f_get_instances():
+
"""
    v_method  = "GET"
+
def f_get_instances():
    v_url    = "http://my_sqwareweb_url/lib/apiUpdate.php"
+
v_method  = "GET"
    t_headers = {'Authorization':'Bearer '+v_bearer_token, 'Content-Type': 'application/json'}
+
v_url    = "http://my_sqwareweb_url/lib/apiUpdate.php"
   
+
t_headers = {'Authorization':'Bearer '+v_bearer_token, 'Content-Type': 'application/json'}
    v_response = f_api_request(v_method, v_url, t_headers=t_headers) # API request
+
 
    v_json_response = json.loads(v_response.text)
+
  v_response = f_api_request(v_method, v_url, t_headers=t_headers) # API request
    if "error_message" not in v_json_response:
+
v_json_response = json.loads(v_response.text)
        v_instances = v_json_response['results'] # Get instances
+
if "error_message" not in v_json_response:
        print(v_instances)
+
v_instances = v_json_response['results'] # Get instances
        return 1
+
print(v_instances)
    else:
+
return 1
        v_error_message = v_json_response['error_message']
+
else:
        print("Error message ["+v_error_message+"]")
+
v_error_message = v_json_response['error_message']
        return 0
+
print("Error message ["+v_error_message+"]")
+
return 0
"""
+
 
f_post_instance create new instance object
+
"""
+
f_post_instance create new instance object
:param t_data        : JSON object data
+
 
:return              : request response
+
:param t_data        : JSON object data
"""
+
:return              : request response
def f_post_instance(t_data):
+
"""
    v_method  = "POST"
+
def f_post_instance(t_data):
    v_url    = "http://my_sqwareweb_url/lib/apiUpdate.php"
+
v_method  = "POST"
    t_headers = {'Authorization':'Bearer '+v_bearer_token, 'Content-Type': 'application/json'}
+
v_url    = "http://my_sqwareweb_url/lib/apiUpdate.php"
    t_data    = json.dumps(t_data)
+
t_headers = {'Authorization':'Bearer '+v_bearer_token, '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)
+
  v_response = f_api_request(v_method, v_url, t_headers=t_headers, t_data=t_data) # API request
    if "error_message" not in v_json_response:
+
v_json_response = json.loads(v_response.text)
        print("Insert with success !")
+
if "error_message" not in v_json_response:
        return 1
+
print("Insert with success !")
    else:
+
return 1
        v_error_message = v_json_response['error_message']
+
else:
        print("Error message ["+v_error_message+"]")
+
v_error_message = v_json_response['error_message']
        return 0
+
print("Error message ["+v_error_message+"]")
+
return 0
"""
+
 
f_put_instance update instance object
+
"""
+
f_put_instance update instance object
:param v_dbalias      : dbalias name
+
 
:param t_data        : JSON object data
+
:param v_dbalias      : dbalias name
:return              : request response
+
:param t_data        : JSON object data
"""
+
:return              : request response
def f_put_instance(v_dbalias, t_data):
+
"""
    v_method  = "PUT"
+
def f_put_instance(v_dbalias, t_data):
    v_url    = "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias="+v_dbalias
+
v_method  = "PUT"
    t_headers = {'Authorization':'Bearer '+v_bearer_token, 'Content-Type': 'application/json'}
+
v_url    = "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias="+v_dbalias
    t_data    = json.dumps(t_data)
+
t_headers = {'Authorization':'Bearer '+v_bearer_token, '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)
+
  v_response = f_api_request(v_method, v_url, t_headers=t_headers, t_data=t_data) # API request
    if "error_message" not in v_json_response:
+
v_json_response = json.loads(v_response.text)
        print("Update with success !")
+
if "error_message" not in v_json_response:
        return 1
+
print("Update with success !")
    else:
+
return 1
        v_error_message = v_json_response['error_message']
+
else:
        print("Error message ["+v_error_message+"]")
+
v_error_message = v_json_response['error_message']
        return 0
+
print("Error message ["+v_error_message+"]")
+
return 0
def main():
+
 
    # Variables
+
def main():
    v_username = "toto"
+
# Variables
    v_password = "toto"
+
v_username = "toto"
    v_dbalias  = "toto"
+
v_password = "toto"
   
+
v_dbalias  = "toto"
    # Get bearer token
+
 
    f_get_bearer_token(v_username, v_password)
+
  # Get bearer token
   
+
f_get_bearer_token(v_username, v_password)
    # Post new instance
+
 
    t_data = {
+
  # Post new instance
                "dbalias"      :v_dbalias,
+
t_data = {
                "rdbmsname"    :"cassandra",
+
"dbalias"      :v_dbalias,
                "virt_host_name":"AA-TEST-API",
+
"rdbmsname"    :"cassandra",
                "host_name"    :"NPW",
+
"virt_host_name":"AA-TEST-API",
                "username"      :"system",
+
"host_name"    :"NPW",
                "port"          :"1430",
+
"username"      :"system",
                "comments"      :"desc IPS_A",
+
"port"          :"1430",
                "contact"      :"OAY .L",
+
"comments"      :"desc IPS_A",
                "status"        :"ON",
+
"contact"      :"OAY .L",
                "client"        :"CUST2",
+
"status"        :"ON",
                "env"          :"PRD3",
+
"client"        :"CUST2",
                "globalhost"    :"A",
+
"env"          :"PRD3",
                "custom1"      :"B",
+
"globalhost"    :"A",
                "custom2"      :"C",
+
"custom1"      :"B",
                "dbaname"      :v_username,
+
"custom2"      :"C",
                "comments_upd"  :"insert new instance by API"
+
"dbaname"      :v_username,
            }
+
"comments_upd"  :"insert new instance by API"
   
+
}
    f_post_instance(t_data)
+
 
   
+
  f_post_instance(t_data)
    # Get new instance
+
 
    f_get_instance(v_dbalias)
+
  # Get new instance
   
+
f_get_instance(v_dbalias)
    # Put new instance
+
 
    t_data = {
+
  # Put new instance
                "rdbmsname"    :"mysql",
+
t_data = {
                "virt_host_name":"AA-TEST-API",
+
"rdbmsname"    :"mysql",
                "host_name"    :"NPW",
+
"virt_host_name":"AA-TEST-API",
                "username"      :"system",
+
"host_name"    :"NPW",
                "port"          :"1430",
+
"username"      :"system",
                "comments"      :"desc IPS_A",
+
"port"          :"1430",
                "contact"      :"OAY .L",
+
"comments"      :"desc IPS_A",
                "status"        :"OFF",
+
"contact"      :"OAY .L",
                "client"        :"CUST2",
+
"status"        :"OFF",
                "env"          :"PRD3",
+
"client"        :"CUST2",
                "globalhost"    :"A",
+
"env"          :"PRD3",
                "custom1"      :"B",
+
"globalhost"    :"A",
                "custom2"      :"C",
+
"custom1"      :"B",
                "comments_upd"  : "update instance status by API"
+
"custom2"      :"C",
            }
+
"comments_upd"  : "update instance status by API"
   
+
}
    f_put_instance(v_dbalias, t_data)
+
 
   
+
  f_put_instance(v_dbalias, t_data)
    # Get all instances
+
 
    f_get_instances()
+
  # Get all instances
+
f_get_instances()
if __name__ == '__main__':
+
 
    main()
+
if __name__ == '__main__':
 +
main()
 +
</syntaxhighlight>
  
 
===PHP===
 
===PHP===
<?php
+
<syntaxhighlight lang="php" line>
+
<?php
$v_bearer_token = "";
+
 
+
$v_bearer_token = "";
/**
+
 
  * f_api_request does API request
+
/**
  *  
+
* f_api_request does API request
  * @param String $v_method : request method
+
*  
  * @param String $v_url    : website url
+
* @param String $v_method : request method
  * @param Array $t_headers : JSON object headers  
+
* @param String $v_url    : website url
  * @param Array $t_data    : JSON object data
+
* @param Array $t_headers : JSON object headers  
  * @return $v_response    : API request return
+
* @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();
+
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,
+
  curl_setopt_array($v_curl, array(
        CURLOPT_RETURNTRANSFER => true,
+
CURLOPT_URL            => $v_url,
        CURLOPT_ENCODING      => '',
+
CURLOPT_RETURNTRANSFER => true,
        CURLOPT_MAXREDIRS      => 10,
+
CURLOPT_ENCODING      => '',
        CURLOPT_TIMEOUT        => 0,
+
CURLOPT_MAXREDIRS      => 10,
        CURLOPT_FOLLOWLOCATION => true,
+
CURLOPT_TIMEOUT        => 0,
        CURLOPT_HTTP_VERSION  => CURL_HTTP_VERSION_1_1,
+
CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_CUSTOMREQUEST  => $v_method,
+
CURLOPT_HTTP_VERSION  => CURL_HTTP_VERSION_1_1,
        CURLOPT_POSTFIELDS    => $t_data,
+
CURLOPT_CUSTOMREQUEST  => $v_method,
        CURLOPT_HTTPHEADER    => $t_headers,
+
CURLOPT_POSTFIELDS    => $t_data,
    ));
+
CURLOPT_HTTPHEADER    => $t_headers,
   
+
));
    $v_response = curl_exec($v_curl);
+
 
    return $v_response;
+
  $v_response = curl_exec($v_curl);
 +
return $v_response;
 +
}
 +
 
 +
/**
 +
* f_get_bearer_token recovers bearer token
 +
*
 +
* @param String $v_username : account username
 +
* @param String $v_password : account password
 +
* @return $v_bearer_token  : bearer token
 +
*/
 +
function f_get_bearer_token($v_username, $v_password){
 +
$v_method  = "POST";
 +
$v_url    = "http://my_sqwareweb_url/lib/apiUpdate_login.php";
 +
$t_headers = array('Content-Type: application/json');
 +
$t_data    = json_encode(array("username" => $v_username, "password" => $v_password), JSON_FORCE_OBJECT); // Crendentials for connection
 +
 
 +
$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)){
 +
global $v_bearer_token;
 +
$v_bearer_token = $v_json_response['results'][0]['token']; // Get token response
 +
echo("Bearer token : $v_bearer_token");
 +
return 0;
 
  }
 
  }
   
+
  else{
/**
+
$v_error_message = $v_json_response['error_message'];
  * f_get_bearer_token recovers bearer token
+
echo("Error message [$v_error_message]");
  *
+
return 1;
  * @param String $v_username : account username
 
  * @param String $v_password : account password
 
  * @return $v_bearer_token  : bearer token
 
  */
 
function f_get_bearer_token($v_username, $v_password){
 
    $v_method  = "POST";
 
    $v_url    = "http://my_sqwareweb_url/lib/apiUpdate_login.php";
 
    $t_headers = array('Content-Type: application/json');
 
    $t_data    = json_encode(array("username" => $v_username, "password" => $v_password), JSON_FORCE_OBJECT); // Crendentials for connection
 
 
    $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)){
 
        global $v_bearer_token;
 
        $v_bearer_token = $v_json_response['results'][0]['token']; // Get token response
 
        echo("Bearer token : $v_bearer_token");
 
        return 0;
 
    }
 
    else{
 
        $v_error_message = $v_json_response['error_message'];
 
        echo("Error message [$v_error_message]");
 
        return 1;
 
    }
 
 
  }
 
  }
+
}
/**
+
 
  * f_get_instance recovers instance object
+
/**
  *  
+
* f_get_instance recovers instance object
  * @param String $v_dbalias      : dbalias name
+
*  
  * @return $v_instance          : instance object
+
* @param String $v_dbalias      : dbalias name
  */
+
* @return $v_instance          : instance object
function f_get_instance($v_dbalias){
+
*/
    global $v_bearer_token;
+
function f_get_instance($v_dbalias){
    $v_method  = "GET";
+
global $v_bearer_token;
    $v_url    = "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias=".$v_dbalias;
+
$v_method  = "GET";
    $t_headers = array('Authorization: Bearer '.$v_bearer_token.'', 'Content-Type: application/json');
+
$v_url    = "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias=".$v_dbalias;
   
+
$t_headers = array('Authorization: Bearer '.$v_bearer_token.'', 'Content-Type: application/json');
    $v_response = f_api_request($v_method, $v_url, $t_headers=$t_headers); // API request
+
 
    $v_json_response = json_decode($v_response, true);
+
  $v_response = f_api_request($v_method, $v_url, $t_headers=$t_headers); // API request
    if(!array_key_exists("error_message", $v_json_response)){
+
$v_json_response = json_decode($v_response, true);
        $v_instance = $v_json_response['results'][0]; // Get instance
+
if(!array_key_exists("error_message", $v_json_response)){
        var_dump($v_instance);
+
$v_instance = $v_json_response['results'][0]; // Get instance
        return 0;
+
var_dump($v_instance);
    }
+
return 0;
    else{
 
        $v_error_message = $v_json_response['error_message'];
 
        echo("Error message [$v_error_message]");
 
        return 1;
 
    }
 
 
  }
 
  }
   
+
  else{
/**
+
$v_error_message = $v_json_response['error_message'];
  * f_get_instances recovers instances objects
+
echo("Error message [$v_error_message]");
  *
+
return 1;
  * @return $v_instances          : instances objects
 
  */
 
function f_get_instances(){
 
    global $v_bearer_token;
 
    $v_method  = "GET";
 
    $v_url    = "http://my_sqwareweb_url/lib/apiUpdate.php";
 
    $t_headers = array('Authorization: Bearer '.$v_bearer_token.'', 'Content-Type: application/json');
 
 
    $v_response = f_api_request($v_method, $v_url, $t_headers=$t_headers); # API request
 
    $v_json_response = json_decode($v_response, true);
 
    if(!array_key_exists("error_message", $v_json_response)){
 
        $v_instance = $v_json_response['results']; // Get instances
 
        var_dump($v_instance);
 
        return 0;
 
    }
 
    else{
 
        $v_error_message = $v_json_response['error_message'];
 
        echo("Error message [$v_error_message]");
 
        return 1;
 
    }
 
 
  }
 
  }
+
}
/**
+
 
  * f_post_instance create new instance object
+
/**
  *  
+
* f_get_instances recovers instances objects
  * @param Array $t_data         : JSON object data
+
*  
  * @return Array mixed[]        : request response
+
* @return $v_instances         : instances objects
  */
+
*/
function f_post_instance($t_data){
+
function f_get_instances(){
    global $v_bearer_token;
+
global $v_bearer_token;
    $v_method  = "POST";
+
$v_method  = "GET";
    $v_url    = "http://my_sqwareweb_url/lib/apiUpdate.php";
+
$v_url    = "http://my_sqwareweb_url/lib/apiUpdate.php";
    $t_headers = array('Authorization: Bearer '.$v_bearer_token.'', 'Content-Type: application/json');
+
$t_headers = array('Authorization: Bearer '.$v_bearer_token.'', '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); # API request
    $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);
    $v_json_response = json_decode($v_response, true);
+
if(!array_key_exists("error_message", $v_json_response)){
    if(!array_key_exists("error_message", $v_json_response)){
+
$v_instance = $v_json_response['results']; // Get instances
        echo("Insert with success !");
+
var_dump($v_instance);
        return 0;
+
return 0;
    }
 
    else{
 
        $v_error_message = $v_json_response['error_message'];
 
        echo("Error message [$v_error_message]");
 
        return 1;
 
    }
 
}
 
 
/**
 
  * f_put_instance update instance object
 
  *
 
  * @param String $v_dbalias      : dbalias name
 
  * @param Array $t_data          : JSON object data
 
  * @return Array mixed[]        : request response
 
  */
 
function f_put_instance($v_dbalias, $t_data){
 
    global $v_bearer_token;
 
    $v_method  = "PUT";
 
    $v_url      = "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias=".$v_dbalias;
 
    $t_headers = array('Authorization: Bearer '.$v_bearer_token.'', '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("Update with success !");
 
        return 0;
 
    }
 
    else{
 
        $v_error_message = $v_json_response['error_message'];
 
        echo("Error message [$v_error_message]");
 
        return 1;
 
    }
 
 
  }
 
  }
   
+
  else{
function main(){
+
$v_error_message = $v_json_response['error_message'];
    // Variables
+
echo("Error message [$v_error_message]");
    $v_username = "toto";
+
return 1;
    $v_password = "toto";
 
    $v_dbalias  = "toto";
 
 
    // Get bearer token
 
    f_get_bearer_token($v_username, $v_password);
 
 
    // Post new instance
 
    $t_data = array(
 
                        "dbalias"        => $v_dbalias,
 
                        "rdbmsname"      => "cassandra",
 
                        "virt_host_name" => "AA-TEST-API",
 
                        "host_name"      => "NPW",
 
                        "username"      => "system",
 
                        "port"          => "1430",
 
                        "comments"      => "desc IPS_A",
 
                        "contact"        => "OAY .L",
 
                        "status"        => "ON",
 
                        "client"        => "CUST2",
 
                        "env"            => "PRD3",
 
                        "globalhost"    => "A",
 
                        "custom1"        => "B",
 
                        "custom2"        => "C",
 
                        "dbaname"        => $v_username,
 
                        "comments_upd"  => "insert new instance by API"
 
                    );
 
 
    f_post_instance($t_data);
 
 
    // Get new instance
 
    f_get_instance($v_dbalias);
 
 
    // Put new instance
 
    $t_data = array(
 
                        "dbalias"        => $v_dbalias,
 
                        "rdbmsname"      => "mysql",
 
                        "virt_host_name" => "AA-TEST-API",
 
                        "host_name"      => "NPW",
 
                        "username"      => "system",
 
                        "port"          => "1430",
 
                        "comments"      => "desc IPS_A",
 
                        "contact"        => "OAY .L",
 
                        "status"        => "OFF",
 
                        "client"        => "CUST2",
 
                        "env"            => "PRD3",
 
                        "globalhost"    => "A",
 
                        "custom1"        => "B",
 
                        "custom2"        => "C",
 
                        "comments_upd"  => "update instance status by API"
 
                    );
 
 
    f_put_instance($v_dbalias, $t_data);
 
 
    // Get all instances
 
    f_get_instances();
 
 
  }
 
  }
+
}
main();
 
 
?>
 
  
===Shell===
+
/**
#!/bin/sh
+
* f_post_instance create new instance object
+
*
v_bearer_token=""
+
* @param Array $t_data          : JSON object data
v_tempfile=api_dbSQWare.tmp
+
* @return Array mixed[]        : request response
+
*/
<<COMMENTS
+
function f_post_instance($t_data){
    f_get_bearer_token recovers bearer token
+
global $v_bearer_token;
+
$v_method  = "POST";
    :param v_username : account username
+
  $v_url    = "http://my_sqwareweb_url/lib/apiUpdate.php";
    :param v_password : account password
+
$t_headers = array('Authorization: Bearer '.$v_bearer_token.'', 'Content-Type: application/json');
    :param v_tempfile : temporary file
+
$t_data    = json_encode($t_data, JSON_FORCE_OBJECT);
    :return           : bearer token
+
 
COMMENTS
+
$v_response = f_api_request($v_method, $v_url, $t_headers=$t_headers, $t_data=$t_data); // API request
f_get_bearer_token(){
+
$v_json_response = json_decode($v_response, true);
    v_username="$1"
+
if(!array_key_exists("error_message", $v_json_response)){
    v_password="$2"
+
echo("Insert with success !");
    v_tempfile="$3"
+
return 0;
   
 
    curl --location --request POST "http://my_sqwareweb_url/lib/apiUpdate_login.php" -H "Content-Type:application/json" -d '{"username":"'$v_username'","password":"'$v_password'"}' > $v_tempfile 2>$v_tempfile.err
 
if [ $(grep -c '"error_message"' $v_tempfile) -eq 0 ]
 
then
 
        # Get bearer token
 
v_bearer_token=`cat $v_tempfile|grep '\"token\":\"' | cut -d'"' -f4`
 
        echo "Bearer token : $v_bearer_token"
 
return 0
 
else
 
v_error_message=`cat $v_tempfile|grep '\"error_message\": \"' | cut -d'"' -f4`
 
        echo "Error message [$v_error_message]"
 
return 1
 
fi
 
 
  }
 
  }
   
+
  else{
<<COMMENTS
+
$v_error_message = $v_json_response['error_message'];
    f_get_instance recovers instance object
+
echo("Error message [$v_error_message]");
+
return 1;
    :param v_dbalias : dbalias name
 
    :return          : instance object
 
COMMENTS
 
f_get_instance(){
 
    v_dbalias="$1"
 
 
    curl --location --request GET "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias=$v_dbalias" -H "Authorization: Bearer $v_bearer_token" -H "Content-Type:application/json" > $v_tempfile 2>$v_tempfile.err
 
if [ $(grep -c '"error_message"' $v_tempfile) -eq 0 ]
 
then
 
        # Get instance
 
        v_instance=`cat $v_tempfile|grep -A 1 '\"results\":'`
 
        echo "Instance : $v_instance"
 
return 0
 
else
 
v_error_message=`cat $v_tempfile|grep '\"error_message\": \"' | cut -d'"' -f4`
 
        echo "Error message [$v_error_message]"
 
return 1
 
fi
 
 
  }
 
  }
+
}
<<COMMENTS
+
 
    f_get_instances recovers instances objects
+
/**
+
* f_put_instance update instance object
     :return : instances objects
+
*
COMMENTS
+
* @param String $v_dbalias     : dbalias name
f_get_instances(){
+
* @param Array $t_data          : JSON object data
     curl --location --request GET "http://my_sqwareweb_url/lib/apiUpdate.php" -H "Authorization: Bearer $v_bearer_token" -H "Content-Type:application/json" > $v_tempfile 2>$v_tempfile.err
+
* @return Array mixed[]        : request response
if [ $(grep -c '"error_message"' $v_tempfile) -eq 0 ]
+
*/
then
+
function f_put_instance($v_dbalias, $t_data){
# Get instances
+
global $v_bearer_token;
v_instances=`cat $v_tempfile|grep -A 1 '\"results\":'`
+
$v_method  = "PUT";
        echo "Instances : $v_instances"
+
$v_url     = "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias=".$v_dbalias;
return 0
+
$t_headers = array('Authorization: Bearer '.$v_bearer_token.'', 'Content-Type: application/json');
else
+
$t_data    = json_encode($t_data, JSON_FORCE_OBJECT);
        v_error_message=`cat $v_tempfile|grep '\"error_message\": \"' | cut -d'"' -f4`
+
 
        echo "Error message [$v_error_message]"
+
$v_response = f_api_request($v_method, $v_url, $t_headers=$t_headers, $t_data=$t_data); // API request
return 1
+
$v_json_response = json_decode($v_response, true);
fi
+
if(!array_key_exists("error_message", $v_json_response)){
 +
echo("Update with success !");
 +
return 0;
 
  }
 
  }
   
+
  else{
<<COMMENTS
+
$v_error_message = $v_json_response['error_message'];
    f_post_instance create new instance object
+
echo("Error message [$v_error_message]");
+
return 1;
    :param t_data : JSON object data
 
    :return      : request response
 
COMMENTS
 
f_post_instance(){
 
    t_data="$1"
 
 
    curl --location --request POST "http://my_sqwareweb_url/lib/apiUpdate.php" -H "Authorization: Bearer $v_bearer_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
 
 
  }
 
  }
   
+
}
  <<COMMENTS
+
 
    f_put_instance update instance object
+
function main(){
   
+
// Variables
    :param v_dbalias : dbalias name
+
$v_username = "toto";
    :param t_data    : JSON object data
+
$v_password = "toto";
    :return          : request response
+
$v_dbalias  = "toto";
COMMENTS
+
 
f_put_instance(){
+
// Get bearer token
    v_dbalias="$1"
+
f_get_bearer_token($v_username, $v_password);
    t_data="$2"
+
 
   
+
// Post new instance
    echo $t_data > test.tmp
+
$t_data = array(
    curl --location --request PUT "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias=$v_dbalias" -H "Authorization: Bearer $v_bearer_token" -H "Content-Type:application/json" -d "$t_data" > $v_tempfile 2>$v_tempfile.err
+
"dbalias"        => $v_dbalias,
if [ $(grep -c '"error_message"' $v_tempfile) -eq 0 ]
+
"rdbmsname"      => "cassandra",
then
+
"virt_host_name" => "AA-TEST-API",
echo "Update with success !"
+
"host_name"      => "NPW",
return 0
+
"username"      => "system",
else
+
"port"          => "1430",
v_error_message=`cat $v_tempfile|grep '\"error_message\": \"' | cut -d'"' -f4`
+
"comments"      => "desc IPS_A",
        echo "Error message [$v_error_message]"
+
"contact"        => "OAY .L",
return 1
+
"status"        => "ON",
fi
+
"client"        => "CUST2",
}
+
"env"            => "PRD3",
+
"globalhost"    => "A",
main(){
+
"custom1"        => "B",
    # Variables
+
"custom2"        => "C",
    v_username="toto";
+
"dbaname"        => $v_username,
    v_password="toto";
+
"comments_upd"  => "insert new instance by API"
    v_dbalias="toto";
+
);
   
+
 
    # Get bearer token
+
f_post_instance($t_data);
    f_get_bearer_token $v_username $v_password $v_tempfile
+
 
   
+
  // Get new instance
    # Post new instance
+
  f_get_instance($v_dbalias);
    t_data='{"dbalias":"'$v_dbalias'","rdbmsname":"cassandra","virt_host_name":"AA-TEST-API","host_name":"NPW","username":"system","port":"1430","comments":"desc IPS_A","contact":"OAY .L","status":"ON","client":"CUST2","env":"PRD3","globalhost":"A","custom1":"B","custom2":"C","dbaname":"'$v_username'","comments_upd":"insert new instance by API"}'
+
 
    f_post_instance "$t_data"
+
// Put new instance
   
+
$t_data = array(
    # Get new instance
+
"dbalias"        => $v_dbalias,
    f_get_instance $v_dbalias
+
"rdbmsname"      => "mysql",
   
+
"virt_host_name" => "AA-TEST-API",
    # Put new instance
+
"host_name"      => "NPW",
    t_data='{"rdbmsname":"mysql","virt_host_name":"AA-TEST-API","host_name":"NPW","username":"system","port":"1430","comments":"desc IPS_A","contact":"OAY .L","status":"OFF","client":"CUST2","env":"PRD3","globalhost":"A","custom1":"B","custom2":"C","comments_upd":"update instance status by API"}'
+
"username"      => "system",
    f_put_instance $v_dbalias "$t_data"
+
"port"          => "1430",
   
+
"comments"      => "desc IPS_A",
    # Get all instances
+
"contact"        => "OAY .L",
    f_get_instances
+
"status"        => "OFF",
}
+
"client"        => "CUST2",
+
"env"            => "PRD3",
main
+
"globalhost"    => "A",
 +
"custom1"        => "B",
 +
"custom2"        => "C",
 +
"comments_upd"  => "update instance status by API"
 +
);
 +
 
 +
f_put_instance($v_dbalias, $t_data);
 +
 
 +
// Get all instances
 +
f_get_instances();
 +
}
 +
 
 +
main();
 +
 
 +
?>
 +
</syntaxhighlight>
 +
 
 +
===Shell===
 +
<syntaxhighlight lang="sh" line>
 +
#!/bin/sh
 +
 
 +
v_bearer_token=""
 +
v_tempfile=api_dbSQWare.tmp
 +
 
 +
<<COMMENTS
 +
f_get_bearer_token recovers bearer token
 +
 
 +
:param v_username : account username
 +
:param v_password : account password
 +
:param v_tempfile : temporary file
 +
:return          : bearer token
 +
COMMENTS
 +
f_get_bearer_token(){
 +
v_username="$1"
 +
v_password="$2"
 +
v_tempfile="$3"
 +
 
 +
curl --location --request POST "http://my_sqwareweb_url/lib/apiUpdate_login.php" -H "Content-Type:application/json" -d '{"username":"'$v_username'","password":"'$v_password'"}' > $v_tempfile 2>$v_tempfile.err
 +
if [ $(grep -c '"error_message"' $v_tempfile) -eq 0 ]
 +
then
 +
# Get bearer token
 +
v_bearer_token=`cat $v_tempfile|grep '\"token\":\"' | cut -d'"' -f4`
 +
echo "Bearer token : $v_bearer_token"
 +
return 0
 +
else
 +
v_error_message=`cat $v_tempfile|grep '\"error_message\": \"' | cut -d'"' -f4`
 +
echo "Error message [$v_error_message]"
 +
return 1
 +
fi
 +
}
 +
 
 +
<<COMMENTS
 +
f_get_instance recovers instance object
 +
 
 +
:param v_dbalias : dbalias name
 +
:return          : instance object
 +
COMMENTS
 +
f_get_instance(){
 +
v_dbalias="$1"
 +
 
 +
curl --location --request GET "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias=$v_dbalias" -H "Authorization: Bearer $v_bearer_token" -H "Content-Type:application/json" > $v_tempfile 2>$v_tempfile.err
 +
if [ $(grep -c '"error_message"' $v_tempfile) -eq 0 ]
 +
then
 +
# Get instance
 +
v_instance=`cat $v_tempfile|grep -A 1 '\"results\":'`
 +
echo "Instance : $v_instance"
 +
return 0
 +
else
 +
v_error_message=`cat $v_tempfile|grep '\"error_message\": \"' | cut -d'"' -f4`
 +
echo "Error message [$v_error_message]"
 +
return 1
 +
fi
 +
}
 +
 
 +
<<COMMENTS
 +
f_get_instances recovers instances objects
 +
 
 +
:return : instances objects
 +
COMMENTS
 +
f_get_instances(){
 +
curl --location --request GET "http://my_sqwareweb_url/lib/apiUpdate.php" -H "Authorization: Bearer $v_bearer_token" -H "Content-Type:application/json" > $v_tempfile 2>$v_tempfile.err
 +
if [ $(grep -c '"error_message"' $v_tempfile) -eq 0 ]
 +
then
 +
# Get instances
 +
v_instances=`cat $v_tempfile|grep -A 1 '\"results\":'`
 +
echo "Instances : $v_instances"
 +
return 0
 +
else
 +
v_error_message=`cat $v_tempfile|grep '\"error_message\": \"' | cut -d'"' -f4`
 +
echo "Error message [$v_error_message]"
 +
return 1
 +
fi
 +
}
 +
 
 +
<<COMMENTS
 +
f_post_instance create new instance object
 +
 
 +
:param t_data : JSON object data
 +
:return      : request response
 +
COMMENTS
 +
f_post_instance(){
 +
t_data="$1"
 +
 
 +
curl --location --request POST "http://my_sqwareweb_url/lib/apiUpdate.php" -H "Authorization: Bearer $v_bearer_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
 +
}
 +
 
 +
<<COMMENTS
 +
f_put_instance update instance object
 +
 
 +
  :param v_dbalias : dbalias name
 +
:param t_data    : JSON object data
 +
:return          : request response
 +
COMMENTS
 +
f_put_instance(){
 +
v_dbalias="$1"
 +
t_data="$2"
 +
 
 +
  echo $t_data > test.tmp
 +
curl --location --request PUT "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias=$v_dbalias" -H "Authorization: Bearer $v_bearer_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 "Update 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(){
 +
# Variables
 +
v_username="toto";
 +
v_password="toto";
 +
v_dbalias="toto";
 +
 
 +
  # Get bearer token
 +
f_get_bearer_token $v_username $v_password $v_tempfile
 +
 
 +
  # Post new instance
 +
t_data='{"dbalias":"'$v_dbalias'","rdbmsname":"cassandra","virt_host_name":"AA-TEST-API","host_name":"NPW","username":"system","port":"1430","comments":"desc IPS_A","contact":"OAY .L","status":"ON","client":"CUST2","env":"PRD3","globalhost":"A","custom1":"B","custom2":"C","dbaname":"'$v_username'","comments_upd":"insert new instance by API"}'
 +
f_post_instance "$t_data"
 +
 
 +
  # Get new instance
 +
f_get_instance $v_dbalias
 +
 
 +
  # Put new instance
 +
t_data='{"rdbmsname":"mysql","virt_host_name":"AA-TEST-API","host_name":"NPW","username":"system","port":"1430","comments":"desc IPS_A","contact":"OAY .L","status":"OFF","client":"CUST2","env":"PRD3","globalhost":"A","custom1":"B","custom2":"C","comments_upd":"update instance status by API"}'
 +
f_put_instance $v_dbalias "$t_data"
 +
 
 +
  # Get all instances
 +
f_get_instances
 +
}
 +
 
 +
main
 +
</syntaxhighlight>

Version actuelle datée du 3 octobre 2023 à 23:33

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érentiel.
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 la table du référentiel général, insert et/ou update, vous devez savoir ce que vous faites !

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".

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.

Python

  1 import requests
  2 import json
  3 
  4 v_bearer_token = ""
  5 
  6 """
  7 f_api_request does API request
  8 
  9 :param v_method  : request method
 10 :param v_url     : website url
 11 :param t_headers : JSON object headers 
 12 :param t_data    : JSON object data
 13 :return          : API request return
 14 """
 15 def f_api_request(v_method, v_url, t_headers={}, t_data={}):
 16  v_response = requests.request(v_method, v_url, headers=t_headers, data=t_data) # API request
 17  return v_response  
 18 
 19 """
 20 f_get_bearer_token recovers bearer token
 21 
 22 :param v_username : account username
 23 :param v_password : account password
 24 :return           : bearer token
 25 """
 26 def f_get_bearer_token(v_username, v_password):
 27  v_method  = "POST"
 28  v_url     = "http://my_sqwareweb_url/lib/apiUpdate_login.php"
 29  t_headers = {'Content-Type': 'application/json'}
 30  t_data    = json.dumps({"username":v_username,"password":v_password}) # Crendentials for connection
 31 
 32  v_response = f_api_request(v_method, v_url, t_headers=t_headers, t_data=t_data) # API request
 33  v_json_response = json.loads(v_response.text)
 34  if "error_message" not in v_json_response:
 35 	 global v_bearer_token
 36 	 v_bearer_token = v_json_response['results'][0]['token'] # Get token response
 37 	 print("Bearer token : "+v_bearer_token)
 38 	 return 1
 39  else:
 40 	 v_error_message = v_json_response['error_message']
 41 	 print("Error message ["+v_error_message+"]")
 42 	 return 0
 43 
 44 """
 45 f_get_instance recovers instance object
 46 
 47 :param v_dbalias      : dbalias name
 48 :return               : instance object
 49 """
 50 def f_get_instance(v_dbalias):
 51  v_method  = "GET"
 52  v_url     = "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias="+v_dbalias
 53  t_headers = {'Authorization':'Bearer '+v_bearer_token, 'Content-Type': 'application/json'}
 54 
 55  v_response = f_api_request(v_method, v_url, t_headers=t_headers) # API request
 56  v_json_response = json.loads(v_response.text)
 57  if "error_message" not in v_json_response:
 58 	 v_instance = v_json_response['results'][0] # Get instance
 59 	 print(v_instance)
 60 	 return 1
 61  else:
 62 	 v_error_message = v_json_response['error_message']
 63 	 print("Error message ["+v_error_message+"]")
 64 	 return 0
 65 
 66 """
 67 f_get_instances recovers instances objects
 68 
 69 :return               : instances objects
 70 """
 71 def f_get_instances():
 72  v_method  = "GET"
 73  v_url     = "http://my_sqwareweb_url/lib/apiUpdate.php"
 74  t_headers = {'Authorization':'Bearer '+v_bearer_token, 'Content-Type': 'application/json'}
 75 
 76  v_response = f_api_request(v_method, v_url, t_headers=t_headers) # API request
 77  v_json_response = json.loads(v_response.text)
 78  if "error_message" not in v_json_response:
 79 	 v_instances = v_json_response['results'] # Get instances
 80 	 print(v_instances)
 81 	 return 1
 82  else:
 83 	 v_error_message = v_json_response['error_message']
 84 	 print("Error message ["+v_error_message+"]")
 85 	 return 0
 86 
 87 """
 88 f_post_instance create new instance object
 89 
 90 :param t_data         : JSON object data
 91 :return               : request response
 92 """
 93 def f_post_instance(t_data):
 94  v_method  = "POST"
 95  v_url     = "http://my_sqwareweb_url/lib/apiUpdate.php"
 96  t_headers = {'Authorization':'Bearer '+v_bearer_token, 'Content-Type': 'application/json'}
 97  t_data    = json.dumps(t_data)
 98 
 99  v_response = f_api_request(v_method, v_url, t_headers=t_headers, t_data=t_data) # API request
100  v_json_response = json.loads(v_response.text)
101  if "error_message" not in v_json_response:
102 	 print("Insert with success !")
103 	 return 1
104  else:
105 	 v_error_message = v_json_response['error_message']
106 	 print("Error message ["+v_error_message+"]")
107 	 return 0
108 
109 """
110 f_put_instance update instance object
111 
112 :param v_dbalias      : dbalias name
113 :param t_data         : JSON object data
114 :return               : request response
115 """
116 def f_put_instance(v_dbalias, t_data):
117  v_method  = "PUT"
118  v_url     = "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias="+v_dbalias
119  t_headers = {'Authorization':'Bearer '+v_bearer_token, 'Content-Type': 'application/json'}
120  t_data    = json.dumps(t_data)
121 
122  v_response = f_api_request(v_method, v_url, t_headers=t_headers, t_data=t_data) # API request
123  v_json_response = json.loads(v_response.text)
124  if "error_message" not in v_json_response:
125 	 print("Update with success !")
126 	 return 1
127  else:
128 	 v_error_message = v_json_response['error_message']
129 	 print("Error message ["+v_error_message+"]")
130 	 return 0
131 
132 def main():
133  # Variables
134  v_username = "toto"
135  v_password = "toto"
136  v_dbalias  = "toto"
137 
138  # Get bearer token
139  f_get_bearer_token(v_username, v_password)
140 
141  # Post new instance
142  t_data = {
143 			 "dbalias"       :v_dbalias,
144 			 "rdbmsname"     :"cassandra",
145 			 "virt_host_name":"AA-TEST-API",
146 			 "host_name"     :"NPW",
147 			 "username"      :"system",
148 			 "port"          :"1430",
149 			 "comments"      :"desc IPS_A",
150 			 "contact"       :"OAY .L",
151 			 "status"        :"ON",
152 			 "client"        :"CUST2",
153 			 "env"           :"PRD3",
154 			 "globalhost"    :"A",
155 			 "custom1"       :"B",
156 			 "custom2"       :"C",
157 			 "dbaname"       :v_username,
158 			 "comments_upd"  :"insert new instance by API"
159 		 }
160 
161  f_post_instance(t_data)
162 
163  # Get new instance
164  f_get_instance(v_dbalias)
165 
166  # Put new instance
167  t_data = {
168 			 "rdbmsname"     :"mysql",
169 			 "virt_host_name":"AA-TEST-API",
170 			 "host_name"     :"NPW",
171 			 "username"      :"system",
172 			 "port"          :"1430",
173 			 "comments"      :"desc IPS_A",
174 			 "contact"       :"OAY .L",
175 			 "status"        :"OFF",
176 			 "client"        :"CUST2",
177 			 "env"           :"PRD3",
178 			 "globalhost"    :"A",
179 			 "custom1"       :"B",
180 			 "custom2"       :"C",
181 			 "comments_upd"  : "update instance status by API"
182 		 }
183 
184  f_put_instance(v_dbalias, t_data)
185 
186  # Get all instances
187  f_get_instances()
188 
189 if __name__ == '__main__':
190  main()

PHP

  1 <?php
  2 
  3 $v_bearer_token = "";
  4 
  5 /**
  6 * f_api_request does API request
  7 * 
  8 * @param String $v_method : request method
  9 * @param String $v_url    : website url
 10 * @param Array $t_headers : JSON object headers 
 11 * @param Array $t_data    : JSON object data
 12 * @return $v_response     : API request return
 13 */
 14 function f_api_request($v_method, $v_url, $t_headers=[], $t_data='{}'){
 15  $v_curl = curl_init();
 16 
 17  curl_setopt_array($v_curl, array(
 18 	 CURLOPT_URL            => $v_url,
 19 	 CURLOPT_RETURNTRANSFER => true,
 20 	 CURLOPT_ENCODING       => '',
 21 	 CURLOPT_MAXREDIRS      => 10,
 22 	 CURLOPT_TIMEOUT        => 0,
 23 	 CURLOPT_FOLLOWLOCATION => true,
 24 	 CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_1_1,
 25 	 CURLOPT_CUSTOMREQUEST  => $v_method,
 26 	 CURLOPT_POSTFIELDS     => $t_data,
 27 	 CURLOPT_HTTPHEADER     => $t_headers,
 28  ));
 29 
 30  $v_response = curl_exec($v_curl);
 31  return $v_response;
 32 }
 33 
 34 /**
 35 * f_get_bearer_token recovers bearer token
 36 * 
 37 * @param String $v_username : account username
 38 * @param String $v_password : account password
 39 * @return $v_bearer_token   : bearer token
 40 */
 41 function f_get_bearer_token($v_username, $v_password){
 42  $v_method  = "POST";
 43  $v_url     = "http://my_sqwareweb_url/lib/apiUpdate_login.php";
 44  $t_headers = array('Content-Type: application/json');
 45  $t_data    = json_encode(array("username" => $v_username, "password" => $v_password), JSON_FORCE_OBJECT); // Crendentials for connection
 46 
 47  $v_response = f_api_request($v_method, $v_url, $t_headers=$t_headers, $t_data=$t_data); // API request
 48  $v_json_response = json_decode($v_response, true);
 49  if(!array_key_exists("error_message", $v_json_response)){
 50 	 global $v_bearer_token;
 51 	 $v_bearer_token = $v_json_response['results'][0]['token']; // Get token response
 52 	 echo("Bearer token : $v_bearer_token");
 53 	 return 0;
 54  }
 55  else{
 56 	 $v_error_message = $v_json_response['error_message'];
 57 	 echo("Error message [$v_error_message]");
 58 	 return 1;
 59  }
 60 }
 61 
 62 /**
 63 * f_get_instance recovers instance object
 64 * 
 65 * @param String $v_dbalias      : dbalias name
 66 * @return $v_instance           : instance object
 67 */
 68 function f_get_instance($v_dbalias){
 69  global $v_bearer_token;
 70  $v_method  = "GET";
 71  $v_url     = "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias=".$v_dbalias;
 72  $t_headers = array('Authorization: Bearer '.$v_bearer_token.'', 'Content-Type: application/json');
 73 
 74  $v_response = f_api_request($v_method, $v_url, $t_headers=$t_headers); // API request
 75  $v_json_response = json_decode($v_response, true);
 76  if(!array_key_exists("error_message", $v_json_response)){
 77 	 $v_instance = $v_json_response['results'][0]; // Get instance
 78 	 var_dump($v_instance);
 79 	 return 0;
 80  }
 81  else{
 82 	 $v_error_message = $v_json_response['error_message'];
 83 	 echo("Error message [$v_error_message]");
 84 	 return 1;
 85  }
 86 }
 87 
 88 /**
 89 * f_get_instances recovers instances objects
 90 * 
 91 * @return $v_instances          : instances objects
 92 */
 93 function f_get_instances(){
 94  global $v_bearer_token;
 95  $v_method  = "GET";
 96  $v_url     = "http://my_sqwareweb_url/lib/apiUpdate.php";
 97  $t_headers = array('Authorization: Bearer '.$v_bearer_token.'', 'Content-Type: application/json');
 98 
 99  $v_response = f_api_request($v_method, $v_url, $t_headers=$t_headers); # API request
100  $v_json_response = json_decode($v_response, true);
101  if(!array_key_exists("error_message", $v_json_response)){
102 	 $v_instance = $v_json_response['results']; // Get instances
103 	 var_dump($v_instance);
104 	 return 0;
105  }
106  else{
107 	 $v_error_message = $v_json_response['error_message'];
108 	 echo("Error message [$v_error_message]");
109 	 return 1;
110  }
111 }
112 
113 /**
114 * f_post_instance create new instance object
115 * 
116 * @param Array $t_data          : JSON object data
117 * @return Array mixed[]         : request response
118 */
119 function f_post_instance($t_data){
120  global $v_bearer_token;
121  $v_method  = "POST";
122  $v_url     = "http://my_sqwareweb_url/lib/apiUpdate.php";
123  $t_headers = array('Authorization: Bearer '.$v_bearer_token.'', 'Content-Type: application/json');
124  $t_data    = json_encode($t_data, JSON_FORCE_OBJECT);
125 
126  $v_response = f_api_request($v_method, $v_url, $t_headers=$t_headers, $t_data=$t_data); // API request
127  $v_json_response = json_decode($v_response, true);
128  if(!array_key_exists("error_message", $v_json_response)){
129 	 echo("Insert with success !");
130 	 return 0;
131  }
132  else{
133 	 $v_error_message = $v_json_response['error_message'];
134 	 echo("Error message [$v_error_message]");
135 	 return 1;
136  }
137 } 
138 
139 /**
140 * f_put_instance update instance object
141 * 
142 * @param String $v_dbalias      : dbalias name
143 * @param Array $t_data          : JSON object data
144 * @return Array mixed[]         : request response
145 */
146 function f_put_instance($v_dbalias, $t_data){
147  global $v_bearer_token;
148  $v_method  = "PUT";
149  $v_url      = "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias=".$v_dbalias;
150  $t_headers = array('Authorization: Bearer '.$v_bearer_token.'', 'Content-Type: application/json');
151  $t_data    = json_encode($t_data, JSON_FORCE_OBJECT);
152 
153  $v_response = f_api_request($v_method, $v_url, $t_headers=$t_headers, $t_data=$t_data); // API request
154  $v_json_response = json_decode($v_response, true);
155  if(!array_key_exists("error_message", $v_json_response)){
156 	 echo("Update with success !");
157 	 return 0;
158  }
159  else{
160 	 $v_error_message = $v_json_response['error_message'];
161 	 echo("Error message [$v_error_message]");
162 	 return 1;
163  }
164 }
165 
166 function main(){
167  // Variables
168  $v_username = "toto";
169  $v_password = "toto";
170  $v_dbalias  = "toto";
171 
172  // Get bearer token
173  f_get_bearer_token($v_username, $v_password);
174 
175  // Post new instance
176  $t_data = array(
177 					 "dbalias"        => $v_dbalias,
178 					 "rdbmsname"      => "cassandra",
179 					 "virt_host_name" => "AA-TEST-API",
180 					 "host_name"      => "NPW",
181 					 "username"       => "system",
182 					 "port"           => "1430",
183 					 "comments"       => "desc IPS_A",
184 					 "contact"        => "OAY .L",
185 					 "status"         => "ON",
186 					 "client"         => "CUST2",
187 					 "env"            => "PRD3",
188 					 "globalhost"     => "A",
189 					 "custom1"        => "B",
190 					 "custom2"        => "C",
191 					 "dbaname"        => $v_username,
192 					 "comments_upd"   => "insert new instance by API"
193 				 );
194 
195  f_post_instance($t_data);
196 
197  // Get new instance
198  f_get_instance($v_dbalias);
199 
200  // Put new instance
201  $t_data = array(
202 					 "dbalias"        => $v_dbalias,
203 					 "rdbmsname"      => "mysql",
204 					 "virt_host_name" => "AA-TEST-API",
205 					 "host_name"      => "NPW",
206 					 "username"       => "system",
207 					 "port"           => "1430",
208 					 "comments"       => "desc IPS_A",
209 					 "contact"        => "OAY .L",
210 					 "status"         => "OFF",
211 					 "client"         => "CUST2",
212 					 "env"            => "PRD3",
213 					 "globalhost"     => "A",
214 					 "custom1"        => "B",
215 					 "custom2"        => "C",
216 					 "comments_upd"   => "update instance status by API"
217 				 );
218 
219  f_put_instance($v_dbalias, $t_data);
220 
221  // Get all instances
222  f_get_instances();
223 }
224 
225 main();
226 
227 ?>

Shell

  1 #!/bin/sh
  2 
  3 v_bearer_token=""
  4 v_tempfile=api_dbSQWare.tmp
  5 
  6 <<COMMENTS
  7  f_get_bearer_token recovers bearer token
  8 
  9  :param v_username : account username
 10  :param v_password : account password
 11  :param v_tempfile : temporary file
 12  :return           : bearer token
 13 COMMENTS
 14 f_get_bearer_token(){
 15  v_username="$1"
 16  v_password="$2"
 17  v_tempfile="$3"
 18 
 19  curl --location --request POST "http://my_sqwareweb_url/lib/apiUpdate_login.php" -H "Content-Type:application/json" -d '{"username":"'$v_username'","password":"'$v_password'"}' > $v_tempfile 2>$v_tempfile.err
 20 if [ $(grep -c '"error_message"' $v_tempfile) -eq 0 ]
 21 then
 22 	 # Get bearer token
 23 	v_bearer_token=`cat $v_tempfile|grep '\"token\":\"' | cut -d'"' -f4`
 24 	 echo "Bearer token : $v_bearer_token"
 25 	return 0
 26 else
 27 	v_error_message=`cat $v_tempfile|grep '\"error_message\": \"' | cut -d'"' -f4`
 28 	 echo "Error message [$v_error_message]"
 29 	return 1
 30 fi
 31 }
 32 
 33 <<COMMENTS
 34  f_get_instance recovers instance object
 35 
 36  :param v_dbalias : dbalias name
 37  :return          : instance object
 38 COMMENTS
 39 f_get_instance(){
 40  v_dbalias="$1"
 41 
 42  curl --location --request GET "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias=$v_dbalias" -H "Authorization: Bearer $v_bearer_token" -H "Content-Type:application/json" > $v_tempfile 2>$v_tempfile.err
 43 if [ $(grep -c '"error_message"' $v_tempfile) -eq 0 ]
 44 then
 45 	 # Get instance
 46 	 v_instance=`cat $v_tempfile|grep -A 1 '\"results\":'`
 47 	 echo "Instance : $v_instance"
 48 	return 0
 49 else
 50 	v_error_message=`cat $v_tempfile|grep '\"error_message\": \"' | cut -d'"' -f4`
 51 	 echo "Error message [$v_error_message]"
 52 	return 1
 53 fi
 54 }
 55 
 56 <<COMMENTS
 57  f_get_instances recovers instances objects
 58 
 59  :return : instances objects
 60 COMMENTS
 61 f_get_instances(){
 62  curl --location --request GET "http://my_sqwareweb_url/lib/apiUpdate.php" -H "Authorization: Bearer $v_bearer_token" -H "Content-Type:application/json" > $v_tempfile 2>$v_tempfile.err
 63 if [ $(grep -c '"error_message"' $v_tempfile) -eq 0 ]
 64 then
 65 	# Get instances
 66 	v_instances=`cat $v_tempfile|grep -A 1 '\"results\":'`
 67 	 echo "Instances : $v_instances"
 68 	return 0
 69 else
 70 	 v_error_message=`cat $v_tempfile|grep '\"error_message\": \"' | cut -d'"' -f4`
 71 	 echo "Error message [$v_error_message]"
 72 	return 1
 73 fi
 74 }
 75 
 76 <<COMMENTS
 77  f_post_instance create new instance object
 78 
 79  :param t_data : JSON object data
 80  :return       : request response
 81 COMMENTS
 82 f_post_instance(){
 83  t_data="$1"
 84 
 85  curl --location --request POST "http://my_sqwareweb_url/lib/apiUpdate.php" -H "Authorization: Bearer $v_bearer_token" -H "Content-Type:application/json" -d "$t_data" > $v_tempfile 2>$v_tempfile.err
 86 if [ $(grep -c '"error_message"' $v_tempfile) -eq 0 ]
 87 then
 88 	echo "Insert with success !"
 89 	return 0
 90 else
 91 	v_error_message=`cat $v_tempfile|grep '\"error_message\": \"' | cut -d'"' -f4`
 92 	 echo "Error message [$v_error_message]"
 93 	return 1
 94 fi
 95 }
 96 
 97 <<COMMENTS
 98  f_put_instance update instance object
 99 
100  :param v_dbalias : dbalias name
101  :param t_data    : JSON object data
102  :return          : request response
103 COMMENTS
104 f_put_instance(){
105  v_dbalias="$1"
106  t_data="$2"
107 
108  echo $t_data > test.tmp
109  curl --location --request PUT "http://my_sqwareweb_url/lib/apiUpdate.php?dbalias=$v_dbalias" -H "Authorization: Bearer $v_bearer_token" -H "Content-Type:application/json" -d "$t_data" > $v_tempfile 2>$v_tempfile.err
110 if [ $(grep -c '"error_message"' $v_tempfile) -eq 0 ]
111 then
112 	echo "Update with success !"
113 	return 0
114 else
115 	v_error_message=`cat $v_tempfile|grep '\"error_message\": \"' | cut -d'"' -f4`
116 	 echo "Error message [$v_error_message]"
117 	return 1
118 fi
119 }
120 
121 main(){
122  # Variables
123  v_username="toto";
124  v_password="toto";
125  v_dbalias="toto";
126 
127  # Get bearer token
128  f_get_bearer_token $v_username $v_password $v_tempfile
129 
130  # Post new instance
131  t_data='{"dbalias":"'$v_dbalias'","rdbmsname":"cassandra","virt_host_name":"AA-TEST-API","host_name":"NPW","username":"system","port":"1430","comments":"desc IPS_A","contact":"OAY .L","status":"ON","client":"CUST2","env":"PRD3","globalhost":"A","custom1":"B","custom2":"C","dbaname":"'$v_username'","comments_upd":"insert new instance by API"}'
132  f_post_instance "$t_data"
133 
134  # Get new instance
135  f_get_instance $v_dbalias
136 
137  # Put new instance
138  t_data='{"rdbmsname":"mysql","virt_host_name":"AA-TEST-API","host_name":"NPW","username":"system","port":"1430","comments":"desc IPS_A","contact":"OAY .L","status":"OFF","client":"CUST2","env":"PRD3","globalhost":"A","custom1":"B","custom2":"C","comments_upd":"update instance status by API"}'
139  f_put_instance $v_dbalias "$t_data"
140 
141  # Get all instances
142  f_get_instances
143 }
144 
145 main