# APIサーバー設定ファイル（api-config.yml）

APIサーバー設定ファイル（api-config.yml）では、HULFT10 Smart Proxy（Web API）を使用するために、サーバー関連の情報、ログおよびデータベース関連の項目を設定します。設定ファイルの更新はテキストエディタで行ってください。

APIサーバー設定ファイル（api-config.yml）は以下にあります。

    $HULFT_SMART_PROXY_HOME/etc/api-config.yml

## 項目一覧

APIサーバー設定ファイル（api-config.yml）の設定項目は以下のとおりです。

表5.1 APIサーバー設定ファイル（api-config.yml）

項目名 | タグ名 | 初期値 | 設定値 | 要否
--- | --- | --- | --- | ---
サーバー関連定義 | server |  |  |
ポート番号 | port |  | 1～41000 | 必須
サーバー証明書 | tls-cert-path |  | ファイルパスとして有効な文字列 | 必須
秘密鍵 | tls-key-path |  | ファイルパスとして有効な文字列 | 必須
HTTPリクエスト読み込み時間 | read-timeout-sec | 30 | 0～600 |
HTTPリクエストヘッダー読み込み時間 | read-header-timeout-sec | 30 | 0～600 |
HTTPレスポンス書き込み時間 | write-timeout-sec | 30 | 0～600 |
待機時間 | idle-timeout-sec | 30 | 0～600 |
データベース関連定義 | database |  |  |
データベースドライバー | db-driver | postgres | postgres | 必須
データベース名 | dbname | hulsp | 文字 | 必須
ユーザー名 | user |  | 文字 | 必須
パスワード | password |  | 文字 | 必須
ホスト名 | host |  | 文字 | 必須
ポート番号 | port | 5432 | 1～65535 | 必須
SSLモード | ssl-mode | disable | disable、require、verify-ca、verify-full(*1) | 必須
接続時間 | connect-timeout | 30 | 0～600 |
クライアントSSL証明書 | ssl-cert |  | ファイルパスとして有効な文字列 |
クライアントSSL秘密鍵 | ssl-key |  | ファイルパスとして有効な文字列 |
SSLルート証明書 | ssl-root-cert |  | ファイルパスとして有効な文字列 |
ログ定義 | log |  |  |
ログレベル | level | info | debug、info、warn、error | 必須
ファイルパス | filepath |  | ファイルパスとして有効な文字列 | 必須
ファイルサイズ | max-size | 100 | 1以上の正数値 | 必須
バックアップファイル数 | max-backups | 0 | 0以上の正数値 | 必須
HULFT定義 | hulft |  |  |
接続時間 | connect-timeout-sec | 10 | 0～600 | 必須
ソケット読み込み時間 | read-timeout-sec | 30 | 0～600 | 必須
ソケット書き込み時間 | write-timeout-sec | 30 | 0～600 | 必須

*1 | : | 未設定の場合は、“disable”が指定されます。

## 各項目の説明

APIサーバー設定ファイルの各項目について説明します。

### サーバー関連定義（server）

ポート番号（port）

  APIサーバーが起動する際に使用するポート番号

サーバー証明書（tls-cert-path）

  TLS通信を行うためのサーバー証明書のファイルパス

秘密鍵（tls-key-path）

  サーバー証明書に対応する秘密鍵のファイルパス

HTTPリクエスト読み込み時間（read-timeout-sec）

  HTTPリクエスト全体（ボディーを含む）の読み取りがタイムアウトするまでの最大時間（単位：秒）

  “0”を指定、または未設定の場合は、タイムアウトは発生しません。

  HTTPリクエストヘッダー読み込み時間（ReadHeaderTimeout_sec）とともに指定できます。

HTTPリクエストヘッダー読み込み時間（read-header-timeout-sec）

  HTTPリクエストヘッダーを読み取るために許可される最大時間（単位：秒）

  “0”を指定、または未設定の場合は、HTTPリクエスト読み込み時間（read-timeout-sec）の値が使用されます。

HTTPレスポンス書き込み時間（write-timeout-sec）

  HTTPレスポンスの書き込みがタイムアウトするまでの最大時間（単位：秒）

  “0”を指定すると、タイムアウトは発生しません。

待機時間（idle-timeout-sec）

  次のリクエストを待つ最大時間（単位：秒）

  “0”を指定するとHTTPリクエスト読み込み時間（read-timeout-sec）の値が使用されます。

  待機時間（idle-timeout-sec）とHTTPリクエスト読み込み時間（read-timeout-sec）の両方に“0”を指定すると、タイムアウトは発生しません。

### データベース関連定義（database）

データベースドライバー（driver）

  データベースへの接続に使用するドライバー名

  “postgres”のみ指定できます。

データベース名（dbname）

  アプリケーションで使用するデータベース名

ユーザー名（user）

  データベースへの接続に使用するユーザー名

パスワード（password）

  データベースへの接続に使用するパスワード

ホスト名（host）

  接続するデータベースのホスト名

ポート番号（port）

  接続するデータベースのポート番号

SSLモード（ssl-mode）

  接続にSSLを使用するかどうか、またどのように使用するかの制御を指定

接続時間（connect-timeout）

  データベースとの接続の確立がタイムアウトするまでの最大時間（単位：秒）

  “0”を指定すると、タイムアウトは発生しません。

クライアントSSL証明書（ssl-cert）

  クライアント認証を行う場合のクライアントSSL証明書のファイルパス

  クライアント認証をする場合は、この項目の指定は必須です。

クライアントSSL秘密鍵（ssl-key）

  クライアントSSL証明書に対応する秘密鍵のファイルパス

  クライアント認証をする場合は、この項目の指定は必須です。

SSLルート証明書（ssl-root-cert）

  サーバー証明書の認証に使用するCA証明書のファイルパス

### ログ定義

ログレベル（level）

  アプリケーションログの出力レベル

  debug

    : アプリケーションの動作に関するデバッグ情報が表示

  info

    : 正常に動作していることを把握するための情報が表示

  warn

    : システムの動作に影響する可能性がある問題を特定するための情報が表示

  error

    : エラーの内容や対処方法など、システムの復旧を目的とした情報が表示

  出力されるログの優先度は以下のとおりです。

      ←優先度低      優先度高→

  debug < info < warn < error

  優先度が指定したログレベル以上のログが出力されます。

  例）ログレベル（level）に“info”を指定した場合、“debug”のログは出力されません。“info”、“warm”および“error”のログが出力されます。

ファイルパス（filepath）

  アプリケーションログの出力先となるファイルパス

  フルパスでの入力をお勧めします。

ファイルサイズ（max-size）

  アプリケーションログがローテーションされるファイルサイズ（単位：MB）

バックアップファイル数（max-backups）

  アプリケーションログがローテーションされ保持する古いログファイルの最大数

### HULFT定義

接続時間（connect-timeout-sec）

  HULFTとの接続の確立がタイムアウトするまでの最大時間（単位：秒）

  “0”を指定すると、タイムアウトは発生しません。

ソケット読み込み時間（read-timeout-sec）

  ソケットからの読み込みがタイムアウトするまでの最大時間（単位：秒）

  “0”を指定すると、タイムアウトは発生しません。

ソケット書き込み時間（write-timeout-sec）

  ソケットからの書き込みがタイムアウトするまでの最大時間（単位：秒）

  “0”を指定すると、タイムアウトは発生しません。