TsgcOpenAPI_Client jest komponentem niewizualnym, który hermetyzuje główne metody i właściwości do wykonywania żądań HTTP na podstawie specyfikacji OpenAPI.
Każdy interfejs OpenAPI utworzony za pomocą parsera sgcOpenAPI posiada 2 metody
Przykład
Użyj usługi Abstractapi, aby pobrać lokalizację adresu IP.
GetOpenAPIClient.Retrieve_the_location_of_an_IP_address('your api', '80.258.15.2');
auth2Code: Stosowany do uwierzytelniania i autoryzacji w większości typów aplikacji, w tym w aplikacjach jednostronicowych, aplikacjach webowych i aplikacjach natywnych. Przepływ umożliwia aplikacjom bezpieczne pozyskiwanie tokenów access_token, które mogą być używane do uzyskiwania dostępu do chronionych zasobów, a także tokenów odświeżania do pozyskiwania kolejnych tokenów access_token oraz tokenów ID dla zalogowanego użytkownika.
auth2ClientCredentials: Ten typ przyznania dostępu jest powszechnie stosowany w interakcjach serwer-serwer, które muszą działać w tle bez bezpośredniej interakcji z użytkownikiem. Aplikacje tego typu są często określane jako procesy demoniczne lub konta usług.
Więcej informacji o OAuth2.
Umożliwia konfigurację sposobu łączenia z bezpiecznymi serwerami SSL/TLS przy użyciu protokołu HTTP/1
ALPNProtocols: lista protokołów ALPN, które zostaną wysłane do serwera.
RootCertFile: ścieżka do pliku certyfikatu głównego.
CertFile: ścieżka do pliku certyfikatu.
KeyFile: ścieżka do pliku klucza certyfikatu.
Password: jeśli certyfikat jest zabezpieczony hasłem, należy je tutaj podać.
VerifyCertificate: jeśli certyfikat musi być weryfikowany, należy włączyć tę właściwość.
VerifyDepth: właściwość całkowitoliczbowa określająca maksymalną liczbę ogniw dozwolonych podczas weryfikacji certyfikatu X.509.
Version: domyślnie używa TLS 1.0; jeśli serwer wymaga wyższej wersji TLS, można ją tutaj wybrać.
IOHandler: wybierz bibliotekę, która będzie używana do połączenia z wykorzystaniem TLS.
iohOpenSSL: korzysta z biblioteki OpenSSL i jest domyślną opcją dla komponentów Indy. Wymaga wdrożenia bibliotek OpenSSL dla win32/win64.
iohSChannel: używa kanału Secure Channel — protokołu bezpieczeństwa zaimplementowanego przez Microsoft dla systemu Windows; nie wymaga wdrażania bibliotek openssl. Działa wyłącznie w systemie Windows 32/64 bity.
OpenSSL_Options: konfiguracja bibliotek OpenSSL.
APIVersion: pozwala określić, które API OpenSSL będzie używane.
oslAPI_1_0: używa API 1.0 OpenSSL; jest to najnowsza wersja obsługiwana przez Indy
oslAPI_1_1: używa interfejsu API 1.1 OpenSSL, wymaga niestandardowej biblioteki Indy i umożliwia korzystanie z bibliotek OpenSSL 1.1.1 (z obsługą TLS 1.3).
oslAPI_3_0: korzysta z API OpenSSL 3.0, wymaga naszej niestandardowej biblioteki Indy i umożliwia używanie bibliotek OpenSSL 3.0.0 (z obsługą TLS 1.3).
LibPath: tutaj można skonfigurować lokalizację bibliotek openSSL
oslpNone: jest to wartość domyślna; biblioteki OpenSSL powinny znajdować się w tym samym folderze co plik binarny lub w znanej ścieżce.
oslpDefaultFolder: automatycznie ustawia ścieżkę openSSL, w której powinny znajdować się biblioteki dla wszystkich osobowości IDE.
oslpCustomFolder: jeśli ta opcja jest wybrana, należy zdefiniować pełną ścieżkę we właściwości LibPathCustom.
LibPathCustom: gdy LibPath = oslpCustomFolder, należy podać pełną ścieżkę do folderu, w którym znajdują się biblioteki openSSL.
UnixSymLinks: włącz lub wyłącz ładowanie dowiązań symbolicznych w systemach Unix (domyślnie włączone, z wyjątkiem OSX64):
oslsSymLinksDefault: domyślnie jest włączone, z wyjątkiem platformy OSX64 (po MacOS Monterey próba załadowania biblioteki bez wersji kończy się błędem).
oslsSymLinksLoadFirst: Załaduj dowiązania symboliczne przed próbą załadowania bibliotek wersji.
oslsSymLinksLoad: Ładuj dowiązania symboliczne po próbie załadowania bibliotek wersji.
oslsSymLinksDontLoad: nie ładuj dowiązań symbolicznych.
SChannel_Options: umożliwia korzystanie z certyfikatu z magazynu certyfikatów systemu Windows.
CertHash: to skrót certyfikatu. Skrót certyfikatu można znaleźć, uruchamiając polecenie dir w programie PowerShell.
CipherList: w tym miejscu można określić, które szyfry będą używane (oddzielone znakiem ":"). Przykład: CALG_AES_256:CALG_AES_128
CertStoreName: nazwa magazynu, w którym przechowywany jest certyfikat. Należy wybrać jedną z poniższych opcji:
scsnMY (wartość domyślna)
scsnCA
scsnRoot
scsnTrust
CertStorePath: ścieżka magazynu, w którym przechowywany jest certyfikat. Wybierz jedną z poniższych opcji:
scspStoreCurrentUser (domyślne)
scspStoreLocalMachine
Ta właściwość służy do konfiguracji połączeń przez serwer proxy.
Włączone: ustaw wartość true, aby włączyć połączenia przez serwer proxy.
Host: Adres serwera proxy
Port: port serwera proxy
UserName/Password: Uwierzytelnianie do połączenia z serwerem proxy, wyłącznie jeśli jest wymagane.
ProxyType: obsługiwane są następujące typy proxy:
Jeśli właściwość Log jest włączona, komunikaty gniazda są zapisywane do określonego pliku dziennika, co jest przydatne podczas debugowania.
Log: włącz, jeśli chcesz zapisywać żądania HTTP do pliku tekstowego.
LogFileName: pełna ścieżka do pliku.
Inne właściwości, które można wykorzystać do dostosowania klienta OpenAPI:
EncodeBodyAsUTF8: jeśli włączone, treść JSON jest kodowana jako UTF8 (domyślnie false).
Poniżej znajduje się lista zdarzeń, które można obsługiwać podczas korzystania z klienta OpenAPI.
OnBeforeRequest
Zdarzenie jest wywoływane przed wysłaniem żądania HTTP. Umożliwia dostosowanie nazw parametrów, nagłówków, zabezpieczeń itp. Poniżej znajduje się przykład pokazujący, jak zastąpić nazwy niektórych parametrów.
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
To zdarzenie jest wywoływane po przesłaniu pliku; można je wykorzystać do śledzenia postępu przesyłania.
OnDownload
Zdarzenie to jest wywoływane po pobraniu pliku; można go używać do śledzenia postępu pobierania.
OnSSLVerifyPeer
Jeśli weryfikacja certyfikatu jest włączona, w tym zdarzeniu można zweryfikować certyfikat serwera i zdecydować, czy go zaakceptować.
OnSSLGetHandler
To zdarzenie jest wywoływane przed utworzeniem procedury obsługi SSL. Można tu utworzyć własną procedurę obsługi SSL (musi dziedziczyć po TIdServerIOHandlerSSLBase lub TIdIOHandlerSSLBase) i ustawić wymagane właściwości.
OnSSLAfterCreateHandler
Jeśli nie utworzono niestandardowego obiektu SSL, zostanie on domyślnie utworzony przy użyciu procedury obsługi OpenSSL. Można uzyskać dostęp do właściwości procedury obsługi SSL i modyfikować je w razie potrzeby.