TsgcOpenAPI_Client は OpenAPI 仕様から HTTP リクエストを行うための主要なメソッドとプロパティをカプセル化する非ビジュアルコンポーネントです。
sgcOpenAPI Parserで作成されるすべてのOpenAPIインターフェイスには2個のメソッドがあります
使用例
Abstractapi を使用して IP アドレスのローカライズ情報を取得します。
GetOpenAPIClient.Retrieve_the_location_of_an_IP_address('your api', '80.258.15.2');
auth2Code: シングルページアプリケーション、ウェブアプリケーション、ネイティブインストールアプリケーションを含む大多数のアプリケーションタイプで認証と認可を行うために使用されます。このフローにより、アプリはリソースへのアクセスに使用できる access_token、追加の access_token を取得するためのリフレッシュトークン、およびサインインユーザーの ID トークンを安全に取得できます。
auth2ClientCredentials: このタイプのグラントは、ユーザーとの即時インタラクションなしにバックグラウンドで実行する必要があるサーバー間インタラクションに一般的に使用されます。このタイプのアプリケーションはデーモンまたはサービスアカウントと呼ばれることが多いです。
詳しくは OAuth2 を参照してください。
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ハンドラーのプロパティにアクセスして、必要に応じて変更できます。