OpenAPI | Client

TsgcOpenAPI_Client è un componente non visuale che incapsula i principali metodi e proprietà per effettuare richieste HTTP da una specifica OpenAPI.

 

Ogni interfaccia OpenAPI creata con sgcOpenAPI Parser dispone di 2 metodi

 

  1. GetOpenAPIClient: è una funzione singleton che restituisce un'istanza della classe principale; se non esiste, viene creata automaticamente.
  2. FreeOpenAPIClient: libera la classe principale se è stata creata.

 

Esempio

Utilizzare Abstractapi per recuperare la localizzazione di un indirizzo IP.


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

 

 

Autenticazione

 

TLSOptions

Consente di configurare come connettersi a server SSL/TLS sicuri utilizzando il protocollo HTTP/1

 

ALPNProtocols: elenco dei protocolli ALPN che verranno inviati al server.

RootCertFile: percorso del file del certificato radice.

CertFile: percorso del file del certificato.

KeyFile: percorso del file della chiave del certificato.

Password: se il certificato è protetto da una password, impostarla qui.

VerifyCertificate: se il certificato deve essere verificato, abilitare questa proprietà.

VerifyDepth: è una proprietà Integer che rappresenta il numero massimo di link consentiti durante la verifica del certificato X.509.

Version: per impostazione predefinita utilizza TLS 1.0; se il server richiede una versione TLS superiore, è possibile selezionarla qui.

IOHandler: selezionare la libreria da utilizzare per la connessione tramite TLS.

iohOpenSSL: utilizza la libreria OpenSSL ed è l'impostazione predefinita per i componenti Indy. Richiede il deployment delle librerie openssl per win32/win64.

iohSChannel: utilizza Secure Channel, un protocollo di sicurezza implementato da Microsoft per Windows, non richiede la distribuzione delle librerie openssl. Funziona solo in Windows a 32/64 bit.

OpenSSL_Options: configurazione delle librerie openSSL.

APIVersion: consente di definire quale API OpenSSL verrà utilizzata.

oslAPI_1_0: utilizza l'API OpenSSL 1.0, l'ultima supportata da Indy

oslAPI_1_1: utilizza OpenSSL API 1.1, richiede la nostra libreria Indy personalizzata e consente l'utilizzo delle librerie OpenSSL 1.1.1 (con supporto TLS 1.3).

oslAPI_3_0: utilizza l'API 3.0 OpenSSL, richiede la nostra libreria Indy personalizzata e consente l'uso delle librerie OpenSSL 3.0.0 (con supporto TLS 1.3).

LibPath: qui è possibile configurare la posizione delle librerie openSSL

oslpNone: questa è l'impostazione predefinita; le librerie openSSL devono trovarsi nella stessa cartella del binario o in un percorso noto.

oslpDefaultFolder: imposta automaticamente il percorso openSSL dove le librerie devono essere situate per tutte le personalità IDE.

oslpCustomFolder: se questa è l'opzione selezionata, definire il percorso completo nella proprietà LibPathCustom.

LibPathCustom: quando LibPath = oslpCustomFolder, definire qui il percorso completo dove si trovano le librerie openSSL.

UnixSymLinks: abilita o disabilita il caricamento dei SymLink sui sistemi Unix (per impostazione predefinita è abilitato, tranne che su OSX64):

oslsSymLinksDefault: per impostazione predefinita sono abilitati, eccetto su OSX64 (dopo MacOS Monterey si verifica un errore nel tentativo di caricare la libreria senza versione.).

oslsSymLinksLoadFirst: Carica i SymLink e li elabora prima di tentare il caricamento delle librerie di versione.

oslsSymLinksLoad: Carica i SymLink dopo aver tentato di caricare le librerie di versione.

oslsSymLinksDontLoad: non caricare i SymLink.

SChannel_Options: consente di utilizzare un certificato dall'archivio certificati di Windows.

CertHash: è l'hash del certificato. È possibile trovare l'hash del certificato eseguendo un comando dir in PowerShell.

CipherList: qui è possibile impostare quali cifrari verranno utilizzati (separati da ":"). Esempio: CALG_AES_256:CALG_AES_128

CertStoreName: il nome dello store in cui è memorizzato il certificato. Selezioni uno dei seguenti:

scsnMY (il valore predefinito)

scsnCA

scsnRoot

scsnTrust

CertStorePath: il percorso dello store in cui è memorizzato il certificato. Selezionare uno dei seguenti:

scspStoreCurrentUser (predefinito)

scspStoreLocalMachine

 

 

 

Opzioni Proxy

Utilizzi questa proprietà per configurare le connessioni tramite un proxy.

 

Enabled: imposti a true per abilitare le connessioni proxy.

Host: Indirizzo del server proxy

Port: Porta del server proxy

UserName/Password: Autenticazione per la connessione al proxy, solo se richiesta.

ProxyType: sono supportati i seguenti proxy:

Log

Se la proprietà Log è abilitata, salva i messaggi socket in un file di log specificato, utile per il debug.

 

Log: abiliti se desidera salvare le richieste HTTP in un file di testo.

LogFileName: percorso completo del nome del file.

 

Proprietà

Altre proprietà che possono essere utilizzate per personalizzare il client OpenAPI:

 

EncodeBodyAsUTF8: se abilitato, il corpo JSON viene codificato in UTF8 (Per impostazione predefinita false).

 

 

Eventi

Di seguito è riportato l'elenco degli eventi che è possibile gestire quando si utilizza il Client OpenAPI.

 

 

OnBeforeRequest

 

Questo evento viene chiamato prima dell'esecuzione della richiesta HTTP. Consente di personalizzare i nomi dei parametri, le intestazioni, la sicurezza, ecc. Di seguito un esempio su come sostituire il nome di alcuni parametri.

 


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

 

Questo evento viene chiamato quando un file viene caricato; è possibile utilizzarlo per conoscere l'avanzamento del caricamento.

 

OnDownload

 

Questo evento viene chiamato quando un file viene scaricato; è possibile utilizzarlo per conoscere l'avanzamento del download.

 

OnSSLVerifyPeer

 

Se la verifica del certificato è abilitata, in questo evento è possibile verificare e decidere se accettare il certificato del server.

 

OnSSLGetHandler

 

Questo evento viene generato prima che venga creato l'handler SSL; è possibile creare qui il proprio SSL Handler (deve ereditare da TIdServerIOHandlerSSLBase o TIdIOHandlerSSLBase) e impostare le proprietà necessarie.

 

OnSSLAfterCreateHandler

 

Se non è stato creato nessun oggetto SSL personalizzato, viene creato per impostazione predefinita utilizzando il gestore OpenSSL. È possibile accedere alle proprietà del gestore SSL e modificarle se necessario.