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
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');
auth2Code: Viene utilizzato per eseguire l'autenticazione e l'autorizzazione nella maggior parte dei tipi di applicazioni, incluse le applicazioni a pagina singola, le applicazioni web e le applicazioni installate in modo nativo. Il flusso consente alle app di acquisire in modo sicuro access_token utilizzabili per accedere a risorse protette, nonché token di aggiornamento per ottenere ulteriori access_token e token ID per l'utente autenticato.
auth2ClientCredentials: Questo tipo di concessione è comunemente utilizzato per le interazioni server-to-server che devono essere eseguite in background, senza interazione immediata con un utente. Questo tipo di applicazioni viene spesso denominato daemon o account di servizio.
Per saperne di più su OAuth2.
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
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:
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.
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).
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.