OpenAPI | İstemci

TsgcOpenAPI_Client, bir OpenAPI belirtiminden HTTP istekleri yapmak için ana yöntemleri ve özellikleri kapsayan görsel olmayan bir bileşendir.

 

sgcOpenAPI Parser ile oluşturulan her OpenAPI arayüzünün 2 yöntemi vardır

 

  1. GetOpenAPIClient: ana sınıfın bir örneğini döndüren bir singleton işlevdir, yoksa otomatik olarak oluşturur.
  2. FreeOpenAPIClient: oluşturulmuşsa ana sınıfı serbest bırakır.

 

Örnek

Bir IP Adresinin yerelleştirmesini almak için Abstractapi'yi kullanın.


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

 

 

Authentication

 

TLSOptions

HTTP/1 protokolünü kullanarak güvenli SSL/TLS sunucularına nasıl bağlanılacağını yapılandırmanıza olanak tanır

 

ALPNProtocols: sunucuya gönderilecek ALPN protokollerinin listesi.

RootCertFile: kök sertifika dosyasının yolu.

CertFile: sertifika dosyasının yolu.

KeyFile: sertifika anahtar dosyasının yolu.

Password: sertifika bir parolayla korunuyorsa, buraya ayarlayın.

VerifyCertificate: sertifikanın doğrulanması gerekiyorsa, bu özelliği etkinleştirin.

VerifyDepth: X.509 sertifikası için doğrulama yapıldığında izin verilen maksimum bağlantı sayısını temsil eden bir Integer özelliğidir.

Version: varsayılan olarak TLS 1.0 kullanır, sunucu daha yüksek bir TLS sürümü gerektiriyorsa, burada seçilebilir.

IOHandler: TLS kullanarak bağlantı için hangi kütüphaneyi kullanacağınızı seçin.

iohOpenSSL: OpenSSL kütüphanesini kullanır ve Indy bileşenleri için varsayılandır. win32/win64 için openssl kütüphanelerinin dağıtılmasını gerektirir.

iohSChannel: Microsoft tarafından Windows için uygulanan bir güvenlik protokolü olan Secure Channel'ı kullanır, openssl kütüphanelerini dağıtmayı gerektirmez. Yalnızca Windows 32/64 bit'te çalışır.

OpenSSL_Options: openSSL kütüphanelerinin yapılandırması.

APIVersion: hangi OpenSSL API'sinin kullanılacağını tanımlamaya olanak tanır.

oslAPI_1_0: API 1.0 OpenSSL kullanır, Indy tarafından desteklenen en son sürümdür

oslAPI_1_1: API 1.1 OpenSSL kullanır, özel Indy kütüphanemizi gerektirir ve OpenSSL 1.1.1 kütüphanelerinin (TLS 1.3 desteğiyle) kullanılmasına izin verir.

oslAPI_3_0: API 3.0 OpenSSL kullanır, özel Indy kütüphanemizi gerektirir ve OpenSSL 3.0.0 kütüphanelerinin (TLS 1.3 desteğiyle) kullanılmasına olanak tanır.

LibPath: burada openSSL kütüphanelerinin nerede bulunduğunu yapılandırabilirsiniz

oslpNone: bu varsayılandır, OpenSSL kitaplıkları ikili dosyanın bulunduğu klasörde veya bilinen bir yolda olmalıdır.

oslpDefaultFolder: tüm IDE kişilikleri için kütüphanelerin bulunması gereken openSSL yolunu otomatik olarak ayarlar.

oslpCustomFolder: seçilen seçenek buysa, tam yolu LibPathCustom özelliğinde tanımlayın.

LibPathCustom: LibPath = oslpCustomFolder olduğunda openSSL kütüphanelerinin bulunduğu tam yolu burada tanımlayın.

UnixSymLinks: Unix sistemlerinde SymLinks yüklemesini etkinleştirin veya devre dışı bırakın (varsayılan olarak etkindir, OSX64 hariç):

oslsSymLinksDefault: OSX64 dışında varsayılan olarak etkindir (MacOS Monterey'den sonra kütüphaneyi sürüm olmadan yüklemeye çalışırken başarısız olur).

oslsSymLinksLoadFirst: SymLinks'i yükle ve bunu sürüm kitaplıklarını yüklemeyi denemeden önce yap.

oslsSymLinksLoad: Sürüm kütüphanelerini yüklemeyi denedikten sonra SymLinks'i yükle.

oslsSymLinksDontLoad: SymLink'leri yükleme.

SChannel_Options: Windows Sertifika Deposundan bir sertifika kullanmanıza olanak tanır.

CertHash: sertifika Hash değeridir. Sertifika Hash değerini powershell'de bir dir komutu çalıştırarak bulabilirsiniz.

CipherList: burada hangi Cipher'ların kullanılacağını ayarlayabilirsiniz (":" ile ayrılmış). Örnek: CALG_AES_256:CALG_AES_128

CertStoreName: sertifikanın saklandığı depo adı. Aşağıdakilerden birini seçin:

scsnMY (varsayılan)

scsnCA

scsnRoot

scsnTrust

CertStorePath: sertifikanın saklandığı depo yolu. Aşağıdakilerden birini seçin:

scspStoreCurrentUser (varsayılan)

scspStoreLocalMachine

 

 

 

Proxy Seçenekleri

Bağlantıları bir proxy aracılığıyla yapılandırmak için bu özelliği kullanın.

 

Enabled: proxy bağlantılarını etkinleştirmek için true olarak ayarlayın.

Host: Proxy sunucusu adresi

Port: Proxy sunucusu portu

UserName/Password: Yalnızca gerekiyorsa, proxy'ye bağlanmak için Kimlik Doğrulama.

ProxyType: aşağıdaki proxy'ler desteklenir:

Günlük

Log özelliği etkinleştirilirse, soket mesajlarını belirtilen bir günlük dosyasına kaydeder, hata ayıklama için yararlıdır.

 

Log: HTTP isteklerini bir metin dosyasına kaydetmek istiyorsanız etkinleştirin.

LogFileName: dosya adının tam yolu.

 

Özellikler

OpenAPI istemcisini özelleştirmek için kullanılabilecek diğer özellikler:

 

EncodeBodyAsUTF8: etkinleştirilirse, JSON gövdesi UTF8 olarak kodlanır (varsayılan olarak false).

 

 

Olaylar

OpenAPI İstemcisini kullanırken işleyebileceğiniz olayların listesini aşağıda bulun.

 

 

OnBeforeRequest

 

Bu olay, HTTP isteği çağrılmadan önce çağrılır. Parametre adlarını, Başlıkları, güvenliği özelleştirmeye olanak tanır... Bazı parametrelerin adının nasıl değiştirileceğine dair bir örnek aşağıda bulunmaktadır.

 


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

 

Bu olay, bir dosya yüklendiğinde çağrılır, yüklemenin ilerlemesini bilmek için bu olayı kullanabilirsiniz.

 

OnDownload

 

Bu olay bir dosya indirildiğinde çağrılır, indirmenin ilerlemesini bilmek için bu olayı kullanabilirsiniz.

 

OnSSLVerifyPeer

 

Sertifika doğrulaması etkinse, bu olayda sunucu sertifikasını doğrulayabilir ve kabul edip etmemeye karar verebilirsiniz.

 

OnSSLGetHandler

 

Bu olay SSL işleyici oluşturulmadan önce tetiklenir, burada kendi SSL İşleyicinizi oluşturabilir (TIdServerIOHandlerSSLBase veya TIdIOHandlerSSLBase'den miras alınması gerekir) ve gereken özellikleri ayarlayabilirsiniz

 

OnSSLAfterCreateHandler

 

Özel bir SSL nesnesi oluşturulmamışsa, varsayılan olarak OpenSSL işleyicisini kullanarak oluşturur. SSL İşleyici özelliklerine erişebilir ve gerekirse değiştirebilirsiniz