データソースを使用して API をカプセル化する場合、ビジネス要件に基づいて、API の 1 つ以上のリクエストパラメータをオプションパラメータとして指定できます。API のリクエストパラメータをオプションパラメータとして指定すると、呼び出し側は、API を呼び出すときにリクエストパラメータの値を指定するかどうかを選択できます。これにより、より柔軟な API ベースのクエリが可能になります。このトピックでは、コードレスユーザーインターフェイス ( UI ) またはコードエディターを使用して、API のリクエストパラメータをオプションパラメータとして指定する方法について説明します。
背景情報
この例では、ods_user_info_d ユーザー情報テーブルが使用されます。次の説明は、テーブルのスキーマを示しています。
フィールド名 | データ型 | 説明 |
uid | INT | ユーザーの ID です。 |
gender | STRING | ユーザーの性別です。 |
age_range | STRING | ユーザーの年齢です。 |
zodiac | STRING | ユーザーの星座です。 |
この例では、uid フィールドは必須リクエストパラメータとして指定され、gender フィールドはオプションリクエストパラメータとして指定されます。
コードレス UI
サービス開発パネルで、
アイコンにポインターを移動し、 を選択します。[API の生成] ダイアログボックスで、[API モード] を [ウィザードモード] に設定し、ビジネス要件に基づいて他のパラメータを設定します。次に、[OK] をクリックします。
パラメータの詳細については、「コードレス UI を使用して API を作成する」をご参照ください。
表示される設定タブの [テーブルの選択] セクションで、パラメータを設定します。
[パラメータの選択] セクションで、リクエストパラメータとして使用するフィールドを選択します。

設定タブの右側ナビゲーションペインで、[リクエストパラメータ] をクリックします。
次に、次の図に示すように、リクエストパラメータパネルに表示されるフィールドの [必須] パラメータを設定できます。

フィールドの [必須] を選択すると、そのフィールドは必須リクエストパラメータになります。この場合、現在の API を呼び出すときに、リクエストパラメータの値を指定する必要があります。指定しないと、システムはパラメータ検証例外を報告し、API 呼び出しは失敗します。
フィールドの [必須] を選択しないと、そのフィールドはオプションリクエストパラメータになります。この場合、現在の API を呼び出すときに、リクエストパラメータの値を指定するか、リクエストパラメータを空のままにすることができます。現在の API を呼び出すときにリクエストパラメータを空のままにすると、リクエストパラメータはクエリ条件として使用されません。
API を呼び出します。
ケース 1:uid および gender リクエストパラメータのそれぞれに値を指定します。次のコードは、クエリリクエストを示しています。
SELECT uid, gender, age_range, zodiac FROM ods_user_info_d WHERE uid = 0016359810821 AND gender = 'female';ケース 2:uid リクエストパラメータに値を指定し、gender リクエストパラメータを空のままにします。次のコードは、クエリリクエストを示しています。
SELECT uid, gender, age_range, zodiac FROM ods_user_info_d WHERE uid = 0016359810821;
コードエディター
基本 SQL モードでは、オプションリクエストパラメータのロジックを実装できません。API の [API の生成] ダイアログボックスで [SQL モード] を [基本 SQL] に設定し、API のリクエストパラメータパネルでフィールド ( リクエストパラメータ ) の [必須] チェックボックスをオフにすると、次の状況が発生する可能性があります。
API を呼び出すときにリクエストパラメータの値を指定すると、リクエストパラメータはクエリリクエストにリクエストパラメータ = 指定値の形式で表示されます。
API を呼び出すときにリクエストパラメータの値を指定しないと、リクエストパラメータはクエリリクエストにリクエストパラメータ = null の形式で表示されます。
オプションリクエストパラメータのロジックを実装する場合は、API の高度な SQL モードを使用します。これは、API の [API の生成] ダイアログボックスで [SQL モード] を [高度な SQL] に設定する必要があることを意味します。
サービス開発パネルで、
アイコンにポインターを移動し、 を選択します。[API の生成] ダイアログボックスで、[API モード] を [スクリプトモード] に設定し、ビジネス要件に基づいて他のパラメータを設定します。次に、[決定] をクリックします。
パラメータの詳細については、「コードエディターを使用して API を作成する」をご参照ください。
表示される設定タブの [テーブルの選択] セクションで、パラメータを設定します。
[クエリ SQL の編集] セクションで、MyBatis タグ付きの SQL ステートメントを作成して、リクエストパラメータを設定します。次のコードは例を示しています。
SELECT uid, gender, age_range, zodiac FROM ods_user_info_d <where> <if test='gender!=null'> // gender が null でない場合 gender = ${gender} </if> and uid = ${uid} </where>設定タブの右側ナビゲーションペインで、[リクエストパラメータ] をクリックします。
次に、次の図に示すように、リクエストパラメータパネルに表示されるフィールドの [必須] パラメータを設定できます。

API を呼び出します。
ケース 1:uid および gender リクエストパラメータのそれぞれに値を指定します。次のコードは、クエリリクエストを示しています。
SELECT uid, gender, age_range, zodiac FROM ods_user_info_d WHERE uid = 0016359810821 AND gender = 'female';ケース 2:uid リクエストパラメータに値を指定し、gender リクエストパラメータを空のままにします。次のコードは、クエリリクエストを示しています。
SELECT uid, gender, age_range, zodiac FROM ods_user_info_d WHERE uid = 0016359810821;