DataService Studio では、コードエディターを使用して API を作成できます。コードエディターでは、基本的な SQL 構文または高度な SQL 構文を使用してクエリロジックを実装できます。高度な SQL 構文は、if、choose、when、otherwise、trim、foreach、where などの MyBatis の一般的なタグをサポートしています。高度な SQL 構文を使用すると、null 値チェック、複数値トラバース、テーブルの動的クエリ、動的ソート、集計クエリなどの複雑なクエリロジックを実装できます。
使用上の注意
このトピックでは、コードエディターを使用して API を作成する場合に、高度な SQL ステートメントを使用してクエリロジックを実装する方法のサンプルコードを提供します。また、SQL ステートメントと API の [リクエストパラメーター] および [レスポンスパラメーター] とのマッピングについても説明します。ビジネス要件に基づいて、サンプルコードのテーブル名、フィールド名、およびクエリ条件を置き換える必要があります。
API を作成する際に、リクエストパラメーターとレスポンスパラメーターのサンプル値は必須ではありません。API をテストするたびにリクエストパラメーターに同じ値を使用する場合、サンプル値はリクエストパラメーターの入力として自動的にロードされます。これにより、リクエストパラメーターの値を繰り返し指定する必要がなくなります。サンプル値は参照用です。
コードエディターを使用して API を作成する方法については、「コードエディターを使用した API の作成」をご参照ください。
このトピックでは、高度な SQL 構文が使用されている以下の例を示します。
例 1:条件を使用してテーブルフィールドに基づいて返された結果をソートする
この例では、動的 SQL ステートメントが使用されます。var 変数を設定して、クエリ結果のソートに使用されるメソッドを決定できます。
var変数に 1 を割り当てると、クエリ結果はorder by col01句を使用してソートされます。var変数に 2 を割り当てると、クエリ結果はorder by col02句を使用してソートされます。var変数に 3 を割り当てると、クエリ結果はorder by col01,col02句を使用してソートされます。var変数に 4 を割り当てると、クエリ結果はorder by col02,col01句を使用してソートされます。
次のコードは例を示しています。
ビジネス要件に基づいて、テーブル名、フィールド、およびその他の条件を置き換えてください。
select col01,col02
from table_name
<choose>
<when test='var == 1'>
order by col01
</when>
<when test='var == 2'>
order by col02
</when>
<when test='var == 3'>
order by col01,col02
</when>
<when test='var == 4'>
order by col02,col01
</when>
</choose>次の図は、コードエディターを使用して API を作成するために使用される構成の例を示しています。ビジネス要件に基づいてサンプル値を置き換えることができます。
リクエストパラメーター
パラメーター名
タイプ
位置
必須
サンプル値
デフォルト値
説明
var
INT
QUERY
はい
1
1
ソート方法。
レスポンスパラメーター
パラメーター名
タイプ
サンプル値
col01
STRING
shortname
col02
STRING
name
例 2:条件を使用して異なるテーブルからデータをクエリする
この例では、動的 SQL ステートメントが使用されます。var 変数に異なる値を割り当てて、異なるテーブルの col01 フィールドのデータをクエリできます。
var変数に 1 を割り当てると、table_name01 テーブルの col01 フィールドのデータが返されます。var変数に 2 を割り当てると、table_name02 テーブルの col01 フィールドのデータが返されます。
次のコードは例を示しています。
ビジネス要件に基づいて、テーブル名、フィールド、およびその他の条件を置き換えてください。
select col01
from
<choose>
<when test='var == 1'>
table_name01
</when>
<when test='var == 2'>
table_name02
</when>
</choose>次の図は、コードエディターを使用して API を作成するために使用される構成の例を示しています。ビジネス要件に基づいてサンプル値を置き換えることができます。
リクエストパラメーター
パラメーター名
タイプ
位置
必須
サンプル値
デフォルト値
var
INT
QUERY
はい
1
1
レスポンスパラメーター
パラメーター名
タイプ
サンプル値
col01
STRING
123
例 3:フィールドの値が null かどうかによって WHERE 句を保持するかどうかを決定する
この例では、list コレクションの area パラメーターの値に基づいてクエリ条件が動的に生成されます。次に、その条件に基づいてデータがクエリされます。
list コレクションが null でない場合、area フィールドの値を含むクエリ条件が生成されます。次に、クエリ条件に基づいて list コレクションがトラバースされ、コレクション内の要素が指定された方法で連結されます。その結果、area_id、area、および amount フィールドのデータが返されます。
次のコードは例を示しています。
ビジネス要件に基づいて、テーブル名、フィールド、およびその他の条件を置き換えてください。
SELECT area_id, area, amount
FROM table_name
<where>
<if test='list!=null'>
area in
<foreach collection="list" open="(" close=")" separator="," item="area">
${area}
</foreach>
</if>
</where>次の図は、コードエディターを使用して API を作成するために使用される構成の例を示しています。ビジネス要件に基づいてサンプル値を置き換えることができます。
リクエストパラメーター
パラメーター名
タイプ
位置
必須
サンプル値
デフォルト値
list
STRING_LIST
QUERY
はい
Beijing,Hangzhou
Beijing
レスポンスパラメーター
パラメーター名
タイプ
サンプル値
area_id
STRING
123120
area
STRING
Beijing
amount
STRING
50