OpenAPI | Client

TsgcOpenAPI_Client est un composant non visuel qui encapsule les principales méthodes et propriétés pour effectuer des requêtes HTTP à partir d'une spécification OpenAPI.

 

Chaque interface OpenAPI créée avec sgcOpenAPI Parser dispose de 2 méthodes

 

  1. GetOpenAPIClient : c'est une fonction singleton qui retourne une instance de la classe principale ; si elle n'existe pas, elle est créée automatiquement.
  2. FreeOpenAPIClient : libère la classe principale si elle est créée.

 

Exemple

Utilisez l'API Abstractapi pour récupérer la localisation d'une adresse IP.


GetOpenAPIClient.Retrieve_the_location_of_an_IP_address('your api', '80.258.15.2');

 

 

Authentification

 

TLSOptions

Permet de configurer comment se connecter à des serveurs SSL/TLS sécurisés en utilisant le protocole HTTP/1

 

ALPNProtocols : liste des protocoles ALPN qui seront envoyés au serveur.

RootCertFile : chemin vers le fichier de certificat racine.

CertFile : chemin vers le fichier de certificat.

KeyFile : chemin vers le fichier de clé du certificat.

Password : si le certificat est protégé par un mot de passe, définissez-le ici.

VerifyCertificate : si le certificat doit être vérifié, activez cette propriété.

VerifyDepth : est une propriété Integer représentant le nombre maximum de liens autorisés lors de la vérification du certificat X.509.

Version : par défaut utilise TLS 1.0 ; si le serveur nécessite une version TLS supérieure, elle peut être sélectionnée ici.

IOHandler : sélectionnez la bibliothèque que vous utiliserez pour la connexion TLS.

iohOpenSSL: utilise la bibliothèque OpenSSL et est la valeur par défaut pour les composants Indy. Nécessite le déploiement des bibliothèques openssl pour win32/win64.

iohSChannel : utilise Secure Channel qui est un protocole de sécurité implémenté par Microsoft pour Windows, ne nécessite pas de déployer des bibliothèques openssl. Fonctionne uniquement en Windows 32/64 bits.

OpenSSL_Options : configuration des bibliothèques openSSL.

APIVersion : permet de définir quelle API OpenSSL sera utilisée.

oslAPI_1_0 : utilise l'API 1.0 OpenSSL, la dernière version prise en charge par Indy

oslAPI_1_1 : utilise l'API 1.1 OpenSSL, nécessite notre bibliothèque Indy personnalisée et permet d'utiliser les bibliothèques OpenSSL 1.1.1 (avec prise en charge de TLS 1.3).

oslAPI_3_0 : utilise l'API OpenSSL 3.0, nécessite notre bibliothèque Indy personnalisée et permet d'utiliser les bibliothèques OpenSSL 3.0.0 (avec prise en charge de TLS 1.3).

LibPath : ici vous pouvez configurer l'emplacement des bibliothèques openSSL

oslpNone : c'est la valeur par défaut ; les bibliothèques OpenSSL doivent se trouver dans le même dossier que le binaire ou dans un chemin connu.

oslpDefaultFolder : définit automatiquement le chemin openSSL où les bibliothèques doivent être situées pour toutes les personnalités de l'IDE.

oslpCustomFolder : si cette option est sélectionnée, définissez le chemin complet dans la propriété LibPathCustom.

LibPathCustom : lorsque LibPath = oslpCustomFolder, définissez ici le chemin complet où se trouvent les bibliothèques openSSL.

UnixSymLinks : activer ou désactiver le chargement des liens symboliques sous les systèmes Unix (activé par défaut, sauf sous OSX64) :

oslsSymLinksDefault : activés par défaut sauf sous OSX64 (après MacOS Monterey, le chargement de la bibliothèque sans version échoue.).

oslsSymLinksLoadFirst : Charger d'abord les liens symboliques avant de tenter de charger les bibliothèques de version.

oslsSymLinksLoad : Charger les liens symboliques après avoir tenté de charger les bibliothèques de version.

oslsSymLinksDontLoad : ne pas charger les SymLinks.

SChannel_Options : vous permet d'utiliser un certificat depuis le magasin de certificats Windows.

CertHash : il s'agit du hachage du certificat. Vous pouvez trouver le hachage du certificat en exécutant une commande dir dans PowerShell.

CipherList : vous pouvez définir ici les chiffrements à utiliser (séparés par ":"). Exemple : CALG_AES_256:CALG_AES_128

CertStoreName : le nom du magasin où le certificat est stocké. Sélectionnez l'un des éléments suivants :

scsnMY (la valeur par défaut)

scsnCA

scsnRoot

scsnTrust

CertStorePath : le chemin du magasin où est stocké le certificat. Sélectionnez l'une des valeurs ci-dessous :

scspStoreCurrentUser (valeur par défaut)

scspStoreLocalMachine

 

 

 

Options de proxy

Utilisez cette propriété pour configurer les connexions via un proxy.

 

Enabled : définir sur true pour activer les connexions proxy.

Host : adresse du serveur proxy

Port : Port du serveur proxy

UserName/Password : Authentification pour se connecter au proxy, uniquement si requise.

ProxyType : les proxys suivants sont pris en charge :

Journal

Si la propriété Log est activée, elle enregistre les messages socket dans un fichier journal spécifié, utile pour le débogage.

 

Log : activez si vous souhaitez sauvegarder les requêtes HTTP dans un fichier texte.

LogFileName: chemin complet vers le fichier journal.

 

Propriétés

Autres propriétés pouvant être utilisées pour personnaliser le client OpenAPI :

 

EncodeBodyAsUTF8 : si activé, le corps JSON est encodé en UTF8 (par défaut false).

 

 

Événements

Trouvez ci-dessous la liste des événements que vous pouvez gérer lors de l'utilisation du client OpenAPI.

 

 

OnBeforeRequest

 

Cet événement est appelé avant l'exécution de la requête HTTP. Il permet de personnaliser les noms de paramètres, les en-têtes, la sécurité... Voici un exemple illustrant comment remplacer le nom de certains paramètres.

 


procedure OnBeforeRequestEvent(Sender: TObject; const aRequest: TsgcOpenAPIRequest);
var
  i: Integer;
  oParameter: TsgcOpenAPIParameter;
begin
  for i := 0 to aRequest.Parameters.Count - 1 do
  begin
    oParameter := aRequest.Parameters[i];
    if oParameter._Name = 'meta-modified-from' then
      oParameter._name := 'eventDateTime-from';
    if oParameter._Name = 'meta-modified-to' then
      oParameter._name := 'eventDateTime-to';
  end;
end;

OnUpload

 

Cet événement est appelé lorsqu'un fichier est téléchargé ; vous pouvez l'utiliser pour connaître la progression du téléchargement.

 

OnDownload

 

Cet événement est appelé lorsqu'un fichier est téléchargé ; vous pouvez l'utiliser pour connaître la progression du téléchargement.

 

OnSSLVerifyPeer

 

Si la vérification du certificat est activée, dans cet événement vous pouvez vérifier et décider d'accepter ou non le certificat du serveur.

 

OnSSLGetHandler

 

Cet événement est déclenché avant la création du gestionnaire SSL, vous pouvez créer ici votre propre gestionnaire SSL (doit hériter de TIdServerIOHandlerSSLBase ou TIdIOHandlerSSLBase) et définir les propriétés nécessaires

 

OnSSLAfterCreateHandler

 

Si aucun objet SSL personnalisé n'a été créé, il est créé par défaut à l'aide du gestionnaire OpenSSL. Vous pouvez accéder aux propriétés du gestionnaire SSL et les modifier si nécessaire.