OpenAPI | クライアント

TsgcOpenAPI_Client は OpenAPI 仕様から HTTP リクエストを行うための主要なメソッドとプロパティをカプセル化する非ビジュアルコンポーネントです。

 

sgcOpenAPI Parserで作成されるすべてのOpenAPIインターフェイスには2個のメソッドがあります

 

  1. GetOpenAPIClient: メインクラスのインスタンスを返すシングルトン関数で、存在しない場合は自動的に作成します。
  2. FreeOpenAPIClient: 作成されている場合はメインクラスを解放します。

 

使用例

Abstractapi を使用して IP アドレスのローカライズ情報を取得します。


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

 

 

認証

 

TLSOptions

HTTP/1 プロトコルを使用してセキュアな SSL/TLS サーバーへの接続方法を設定できます

 

ALPNProtocols: サーバーに送信される ALPN プロトコルのリスト。

RootCertFile: ルート証明書ファイルへのパス。

CertFile: 証明書ファイルへのパス。

KeyFile: 証明書鍵ファイルへのパス。

Password:証明書がパスワードで保護されている場合は、ここに設定します。

VerifyCertificate: 証明書を検証する必要がある場合は、このプロパティを有効にしてください。

VerifyDepth: X.509 証明書の検証実行時に許可されるリンクの最大数を表す整数プロパティ。

Version: デフォルトでは TLS 1.0 を使用します。サーバーがより高い TLS バージョンを要求する場合、ここで選択できます。

IOHandler: TLS を使用した接続に使用するライブラリを選択します。

iohOpenSSL: OpenSSLライブラリを使用し、Indyコンポーネントのデフォルトです。win32/win64用のopensslライブラリをデプロイする必要があります。

iohSChannel: Microsoft が Windows 用に実装したセキュリティプロトコルである Secure Channel を使用します。OpenSSL ライブラリをデプロイする必要がありません。Windows 32/64 ビットでのみ動作します。

OpenSSL_Options: OpenSSL ライブラリの設定。

APIVersion: 使用する OpenSSL API を定義できます。

oslAPI_1_0: API 1.0 OpenSSL を使用します。Indy で最後にサポートされたバージョンです。

oslAPI_1_1: API 1.1のOpenSSLを使用します。カスタムIndyライブラリが必要で、OpenSSL 1.1.1ライブラリ(TLS 1.3サポート付き)の使用が可能になります。

oslAPI_3_0: API 3.0 OpenSSLを使用します。当社のカスタムIndyライブラリが必要であり、OpenSSL 3.0.0ライブラリの使用を可能にします(TLS 1.3サポート付き)。

LibPath: openSSLライブラリの場所を設定できます

oslpNone: これはデフォルトです。openSSLライブラリは、バイナリと同じフォルダー、または既知のパスに ある必要があります。

oslpDefaultFolder: すべてのIDEパーソナリティに対してライブラリが配置されるべきopenSSLパスを自動的に設定します。

oslpCustomFolder: このオプションが選択されている場合、プロパティ LibPathCustom にフルパスを定義します。

LibPathCustom: LibPath = oslpCustomFolder の場合、openSSL ライブラリが格納されているフォルダーの完全パスをここで定義します。

UnixSymLinks: Unix システムでシンボリックリンクの読み込みを有効または無効にします(デフォルトでは有効です。OSX64 は除きます)。

oslsSymLinksDefault: デフォルトでは有効です。ただし OSX64 では無効です(MacOS Monterey 以降、バージョンなしでライブラリを読み込もうとすると失敗するため)。

oslsSymLinksLoadFirst: SymLinksを読み込み、バージョンライブラリを読み込む前に行います。

oslsSymLinksLoad: バージョンライブラリの読み込みを試みた後にシンボリックリンクを読み込みます。

oslsSymLinksDontLoad: SymLinksを読み込みません。

SChannel_Options: Windows 証明書ストアから証明書を使用できます。

CertHash: 証明書のハッシュ値です。PowerShell で dir コマンドを実行することで証明書のハッシュ値を確認できます。

CipherList: 使用する暗号スイートを(":" で区切って)設定できます。例: CALG_AES_256:CALG_AES_128

CertStoreName: 証明書が保存されているストアの名前。以下のいずれかを選択します:

scsnMY(デフォルト)

scsnCA

scsnRoot

scsnTrust

CertStorePath: 証明書が格納されているストアパス。以下から選択してください:

scspStoreCurrentUser(デフォルト)

scspStoreLocalMachine

 

 

 

プロキシオプション

このプロパティを使用して、プロキシ経由の接続を設定します。

 

Enabled: プロキシ接続を有効にするには true に設定します。

Host: プロキシサーバーアドレス。

Port: プロキシサーバーのポート

UserName/Password: プロキシへの接続認証。必要な場合のみ。

ProxyType: 以下のプロキシがサポートされています:

ログ

Log プロパティが有効な場合、ソケットメッセージを指定されたログファイルに保存します。デバッグに役立ちます。

 

Log: HTTPリクエストをテキストファイルに保存する場合は有効にします。

LogFileName: ファイル名への完全パス。

 

プロパティ

OpenAPI クライアントのカスタマイズに使用できるその他のプロパティ:

 

EncodeBodyAsUTF8: 有効にすると、JSON ボディが UTF8 でエンコードされます(デフォルトは false)。

 

 

イベント

OpenAPIクライアントを使用する際に処理できるイベントの一覧を以下に示します。

 

 

OnBeforeRequest

 

このイベントは、HTTPリクエストが呼び出される前に呼び出されます。パラメータ名、ヘッダー、セキュリティなどをカスタマイズできます。以下に、一部のパラメータの名前を置き換える方法の例を示します。

 


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

 

このイベントはファイルがアップロードされたときに呼び出されます。このイベントを使用してアップロードの進捗を確認できます。

 

OnDownload

 

このイベントはファイルがダウンロードされたときに呼び出されます。このイベントを使用してダウンロードの進捗を確認できます。

 

OnSSLVerifyPeer

 

証明書の検証が有効な場合、このイベントでサーバー証明書を検証して受け入れるかどうかを決定できます。

 

OnSSLGetHandler

 

このイベントはSSLハンドラーが作成される前に発生します。ここで独自のSSLハンドラーを作成し(TIdServerIOHandlerSSLBaseまたはTIdIOHandlerSSLBaseから継承する必要があります)、必要なプロパティを設定できます

 

OnSSLAfterCreateHandler

 

カスタムSSLオブジェクトが作成されていない場合、デフォルトでOpenSSLハンドラーを使用して作成されます。SSLハンドラーのプロパティにアクセスして、必要に応じて変更できます。