OpenAPI | Client

TsgcOpenAPI_Client is een niet-visueel component dat de belangrijkste methoden en eigenschappen inkapselt om HTTP-verzoeken te maken vanuit een OpenAPI-specificatie.

 

Every OpenAPI interface created with sgcOpenAPI Parser has 2 methods

 

  1. GetOpenAPIClient: het is een singletonsfunctie die een instantie van de hoofdklasse retourneert; als deze niet bestaat, wordt ze automatisch aangemaakt.
  2. FreeOpenAPIClient: geeft de hoofdklasse vrij als deze is aangemaakt.

 

Voorbeeld

Gebruik de Abstractapi om de localisatie van een IP-adres op te halen.


GetOpenAPIClient->Retrieve_the_location_of_an_IP_address("your api", "80.258.15.2");

 

 

Authenticatie

 

TLSOptions

Maakt het mogelijk om te configureren hoe verbinding te maken met beveiligde SSL/TLS-servers via het HTTP/1-protocol

 

ALPNProtocols: lijst van de ALPN-protocollen die naar de server worden verzonden.

RootCertFile: pad naar het basiscertificaatbestand.

CertFile: pad naar het certificaatbestand.

KeyFile: pad naar het certificaatsleutelbestand.

Password: als het certificaat met een wachtwoord is beveiligd, stelt u dit hier in.

VerifyCertificate: als het certificaat moet worden geverifieerd, schakel deze eigenschap in.

VerifyDepth: is een Integer-eigenschap die het maximale aantal koppelingen vertegenwoordigt dat is toegestaan bij verificatie van het X.509-certificaat.

Version: standaard gebruikt TLS 1.0; als de server een hogere TLS-versie vereist, kan hier worden geselecteerd.

IOHandler: selecteer welke bibliotheek u wilt gebruiken voor verbinding via TLS.

iohOpenSSL: gebruikt de OpenSSL-bibliotheek en is de standaard voor Indy-componenten. Vereist het deployen van de openssl-bibliotheken voor win32/win64.

iohSChannel: gebruikt Secure Channel, een beveiligingsprotocol dat door Microsoft voor Windows is geïmplementeerd; hiervoor hoeven geen OpenSSL-bibliotheken te worden geïmplementeerd. Werkt alleen in Windows 32/64 bits.

OpenSSL_Options: configuration of the openSSL libraries.

APIVersion: maakt het mogelijk te definiëren welke OpenSSL API wordt gebruikt.

oslAPI_1_0: gebruikt API 1.0 OpenSSL, de meest recente versie die door Indy wordt ondersteund

oslAPI_1_1: maakt gebruik van OpenSSL API 1.1; vereist onze aangepaste Indy-bibliotheek en biedt de mogelijkheid OpenSSL 1.1.1-bibliotheken te gebruiken (met TLS 1.3-ondersteuning).

oslAPI_3_0: gebruikt API 3.0 OpenSSL, vereist onze aangepaste Indy-bibliotheek en staat het gebruik van OpenSSL 3.0.0-bibliotheken toe (met TLS 1.3-ondersteuning).

LibPath: hier kunt u configureren waar de openSSL-bibliotheken zich bevinden

oslpNone: dit is de standaard; de openSSL-bibliotheken moeten zich in dezelfde map bevinden als het binaire bestand of in een bekend pad.

oslpDefaultFolder: stelt automatisch het openSSL-pad in waar de bibliotheken zich moeten bevinden voor alle IDE-platformpersoonlijkheden.

oslpCustomFolder: als deze optie is geselecteerd, definieer dan het volledige pad in de eigenschap LibPathCustom.

LibPathCustom: wanneer LibPath = oslpCustomFolder, definieer hier het volledige pad waar de openSSL-bibliotheken zich bevinden.

UnixSymLinks: het laden van symbolische koppelingen onder Unix-systemen in- of uitschakelen (standaard ingeschakeld, behalve onder OSX64):

oslsSymLinksDefault: standaard ingeschakeld, behalve onder OSX64 (na MacOS Monterey mislukt het laden van de bibliotheek zonder versie.).

oslsSymLinksLoadFirst: Laad SymLinks en doe dit voor het laden van de versiebibliotheken.

oslsSymLinksLoad: Laad SymLinks nadat geprobeerd is de versie-bibliotheken te laden.

oslsSymLinksDontLoad: laadt de SymLinks niet.

SChannel_Options: hiermee kunt u een certificaat uit de Windows-certificaatopslag gebruiken.

CertHash: is de hash van het certificaat. U kunt de certificaathash vinden door een dir-opdracht uit te voeren in PowerShell.

CipherList: hier kunt u instellen welke Ciphers worden gebruikt (gescheiden door ":"). Voorbeeld: CALG_AES_256:CALG_AES_128

CertStoreName: de opslagnaam waar het certificaat is opgeslagen. Selecteer een van de onderstaande opties:

scsnMY (de standaard)

scsnCA

scsnRoot

scsnTrust

CertStorePath: het opslagpad waar het certificaat is opgeslagen. Selecteer een van de onderstaande opties:

scspStoreCurrentUser (de standaard)

scspStoreLocalMachine

 

 

 

Proxyopties

Gebruik deze eigenschap om verbindingen via een proxy te configureren.

 

Enabled: stel in op true om proxyverbindingen in te schakelen.

Host: Proxyseveradres

Port: Proxy server port

UserName/Password: Authenticatie om verbinding te maken met de proxy, alleen indien vereist.

ProxyType: de volgende proxy's worden ondersteund:

Log

Als de eigenschap Log is ingeschakeld, worden socketberichten opgeslagen in een opgegeven logbestand, wat nuttig is voor foutopsporing.

 

Log: schakel in als u de HTTP-verzoeken wilt opslaan in een tekstbestand.

LogFileName: full path to the filename.

 

Eigenschappen

Overige eigenschappen die kunnen worden gebruikt om de OpenAPI-client aan te passen:

 

EncodeBodyAsUTF8: indien ingeschakeld, wordt de JSON-body gecodeerd als UTF8 (standaard false).

 

 

Gebeurtenissen

Hieronder vindt u de lijst met gebeurtenissen die u kunt verwerken bij gebruik van de OpenAPI Client.

 

 

OnBeforeRequest

 

Dit event wordt aangeroepen voordat het HTTP-verzoek wordt aangeroepen. Maakt het mogelijk de parameternamen, headers, beveiliging... aan te passen. Hieronder vindt u een voorbeeld van hoe u de naam van sommige parameters vervangt.

 


void __fastcall OnBeforeRequestEvent(TObject *Sender, const TsgcOpenAPIRequest *aRequest)
{
    for (int i = 0; i < aRequest->Parameters->Count; i++)
    {
        TsgcOpenAPIParameter *oParameter = aRequest->Parameters->Items[i];
        if (oParameter->_Name == "meta-modified-from")
            oParameter->_Name = "eventDateTime-from";
        if (oParameter->_Name == "meta-modified-to")
            oParameter->_Name = "eventDateTime-to";
    }
}

OnUpload

 

Dit event wordt aangeroepen wanneer een bestand wordt geüpload; u kunt dit event gebruiken om de voortgang van de upload bij te houden.

 

OnDownload

 

Deze gebeurtenis wordt aangeroepen wanneer een bestand is gedownload; u kunt deze gebruiken om de voortgang van de download bij te houden.

 

OnSSLVerifyPeer

 

Als certificaatverificatie is ingeschakeld, kunt u in deze gebeurtenis het servercertificaat verifiëren en beslissen of u het wilt accepteren.

 

OnSSLGetHandler

 

Deze gebeurtenis wordt gegenereerd voordat de SSL-handler wordt aangemaakt; u kunt hier uw eigen SSL-handler aanmaken (die moet worden geërfd van TIdServerIOHandlerSSLBase of TIdIOHandlerSSLBase) en de benodigde eigenschappen instellen.

 

OnSSLAfterCreateHandler

 

Als er geen aangepast SSL-object is aangemaakt, wordt er standaard een aangemaakt met de OpenSSL-handler. U kunt de eigenschappen van de SSL-handler openen en aanpassen indien nodig