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).
Per impostazione predefinita il client OpenAPI esegue le richieste in modo sincrono. Utilizzare l'API asincrona per eseguire una richiesta su un thread in background ed essere notificati tramite eventi, il che mantiene reattiva l'interfaccia utente e consente di annullare la richiesta.
HTTP_REQUEST_Async: esegue la richiesta su un thread di lavoro. Il client assume la proprietà dell'oggetto richiesta.
CancelAsync: annulla la richiesta in corso.
SynchronizeEvents: quando è True gli eventi vengono marshallati sul thread principale. Per impostazione predefinita è False e gli eventi vengono attivati nel thread di lavoro.
Il risultato viene fornito tramite i seguenti eventi:
OnResponse: la richiesta è stata completata, la risposta viene passata come parametro.
OnError: la richiesta è fallita, l'eccezione viene passata come parametro.
OnCancel: la richiesta è stata annullata da CancelAsync.
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.