OpenAPI | Client

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');

 

 

Authentication

 

TLSOptions

HTTP/1 프로토콜을 사용하여 보안 SSL/TLS 서버에 연결하는 방법을 구성할 수 있습니다

 

ALPNProtocols: 서버로 전송될 ALPN 프로토콜 목록입니다.

RootCertFile: 루트 인증서 파일의 경로입니다.

CertFile: 인증서 파일 경로입니다.

KeyFile: 인증서 키 파일의 경로입니다.

Password: 인증서가 비밀번호로 보호된 경우 여기에 설정하십시오.

VerifyCertificate: 인증서를 검증해야 하는 경우 이 속성을 활성화하십시오.

VerifyDepth: X.509 인증서에 대해 검증이 수행될 때 허용되는 최대 링크 수를 나타내는 Integer 속성입니다.

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 시스템에서 SymLinks 로딩을 활성화하거나 비활성화합니다(기본적으로 활성화되어 있으며, OSX64에서는 예외):

oslsSymLinksDefault: 기본적으로 활성화되지만 OSX64에서는 예외입니다(MacOS Monterey 이후 버전 없이 라이브러리를 로드하려고 하면 실패함).

oslsSymLinksLoadFirst: 버전 라이브러리를 로드하기 전에 SymLink를 로드하고 먼저 시도합니다.

oslsSymLinksLoad: 버전 라이브러리를 로드하려고 시도한 후 SymLinks를 로드합니다.

oslsSymLinksDontLoad: SymLinks를 로드하지 않습니다.

SChannel_Options: Windows Certificate Store의 인증서를 사용할 수 있게 합니다.

CertHash: 는 인증서 Hash입니다. powershell에서 dir 명령을 실행하여 인증서 Hash를 찾을 수 있습니다.

CipherList: 여기에서 어떤 Cipher가 사용될지 설정할 수 있습니다(":"로 구분). 예: CALG_AES_256:CALG_AES_128

CertStoreName: 인증서가 저장된 스토어 이름. 아래 중 하나를 선택하십시오:

scsnMY(기본값)

scsnCA

scsnRoot

scsnTrust

CertStorePath: 인증서가 저장된 저장소 경로입니다. 아래에서 하나를 선택하십시오:

scspStoreCurrentUser (기본값)

scspStoreLocalMachine

 

 

 

Proxy Options

프록시를 통한 연결을 구성하려면 이 속성을 사용하십시오.

 

Enabled: 프록시 연결을 활성화하려면 true로 설정하십시오.

Host: 프록시 서버 주소

Port: 프록시 서버 포트

UserName/Password: 프록시에 연결하기 위한 인증입니다. 필요한 경우에만 사용합니다.

ProxyType: 다음 프록시가 지원됩니다:

Log

Log 속성이 활성화되면 소켓 메시지를 지정된 로그 파일에 저장하며, 디버깅에 유용합니다.

 

Log: HTTP 요청을 텍스트 파일에 저장하려면 활성화하십시오.

LogFileName: 파일 이름의 전체 경로입니다.

 

Properties

OpenAPI 클라이언트를 사용자 정의하는 데 사용할 수 있는 기타 속성:

 

EncodeBodyAsUTF8: 활성화하면 JSON 본문이 UTF8로 인코딩됩니다(기본값 false).

 

 

Events

OpenAPI Client를 사용할 때 처리할 수 있는 이벤트 목록은 아래를 참조하십시오.

 

 

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

 

verify certificate가 활성화된 경우, 이 이벤트에서 서버 인증서를 확인하고 수락할지 여부를 결정할 수 있습니다.

 

OnSSLGetHandler

 

이 이벤트는 SSL 핸들러가 생성되기 전에 발생합니다. 여기에서 자체 SSL 핸들러(TIdServerIOHandlerSSLBase 또는 TIdIOHandlerSSLBase에서 상속되어야 함)를 생성하고 필요한 속성을 설정할 수 있습니다

 

OnSSLAfterCreateHandler

 

사용자 정의 SSL 객체가 생성되지 않은 경우, OpenSSL 핸들러를 사용하여 기본적으로 생성합니다. SSL Handler 속성에 액세스하여 필요한 경우 수정할 수 있습니다