API Adapter est un composant permettant de définir un modèle de fonction pour l'API Parser et API Server pour travailler avec un système tiers.
Pour définir un nouvel adaptateur d'API, procédez comme suit.
1.Connectez-vous à la page de gestion du système.
2.Dans la page Gestion du système, sélectionnez Opérations > Adaptateurs d'API depuis la barre d'outils d'accès rapide.
3.Entrez un nom dans le Nom de l'adaptateur domaine, comme Incidents ServiceNow.
4.Entrez une description de l'adaptateur d'API dans le champ Description champ.
5.Entrez le script API dans le scénario domaine. L'exemple de code peut être :
demandes d'importation
importer json
importer pythonutil
def extract_param(param):
# Le NetBrain paramètres initiaux avec des champs personnalisés.
si estinstance(param, str):
param = json.loads(param)
#username, password, endpoint sont des mots-clés intégrés dans le paramètre initial.
nom d'utilisateur = ''
mot de passe = ''
point final = ''
#callParam est un champ personnalisé.
api_param = {}
apiServerId = ''
servInfo = {}
si 'apiServerId' dans le paramètre :
apiServerId = param['apiServerId']
servInfo = pythonutil.GetApiServerInfo(apiServerId)
nom d'utilisateur = servInfo['nom d'utilisateur']
mot de passe = servInfo['mot de passe']
endpoint = servInfo['endpoint']
api_params = param['api_params']
autre:
nom d'utilisateur = param["nom d'utilisateur"]
mot de passe = param["mot de passe"]
endpoint = param["endpoint"]
api_params = param['api_params']
retour (endpoint, nom d'utilisateur, mot de passe, api_params)
def get_data(param):
# en-têtes = {"Content-Type": "application/json", "Accept": "application/json"}
en-têtes = {}
point de terminaison, nom d'utilisateur, mot de passe, api_params = extract_param(param)
full_url = endpoint + api_params['api_uri']
url_params = {}
si 'url_params' dans param['api_params'] :
url_params = api_params['url_params']
url_params['nom d'utilisateur'] = nom d'utilisateur
url_params['password'] = mot de passe
Essai:
réponse = demandes.get (full_url, en-têtes = en-têtes, params = url_params, vérifier = Faux)
si réponse.status_code == 200 :
json_response = réponse.json()
return json_response['capteurs']
autre:
retourner réponse.texte
sauf exception comme e :
retour str(e)
# Définition de la fonction de test du gestionnaire de domaine API.
def _test(param):
test_param = json.loads(param)
test_param["api_params"] = {'api_uri':'/api/table.json?content=sensors&columns=objid&filter_device=US-BOS-R1'}
résultat = json.dumps(get_data(test_param))
#Les champs clés "isFailed" et "msg" sont obligatoires.
rtn = {"isFailed":False, "msg":result}
retourner json.dumps(rtn)
6.Cliquez sur Enregistrer pour enregistrer la définition.
Conseil: Le système fournit un adaptateur API intégré pour l'instance ServiceNow, qui contient la fonction HTTP Get (get_data()). La requête HTTP utilise l'authentification de base pour être authentifiée par PRTG pour chaque appel d'API. Les informations de nom d'utilisateur et de mot de passe sont héritées d'une instance de serveur API définie dans NetBrain Gestionnaire de serveur d'API.
Voir aussi: