5.4.2 $queryパラメータ
$queryパラメータでは、1つ以上の条件式を指定します。条件式では、属性の値を比較したり複数の式を組み合わせたりするために、eq、startsWith、in、andなどの演算子を使用します。
$queryパラメータの基本的な指定例を次に示します。
?$query=ldev.storageDeviceId eq '800000010051'
$queryパラメータで指定する表現、サポートするデータ型、および使用する演算子について説明します。
$queryパラメータで指定する表現
$queryパラメータで指定する表現を次の式で定義します。
expression ::= "(" expression ")" | binary-expression
| expression space junction space expression
space ::= (" ")+
junction ::= ( "and" | "or" )
binary-expression ::= (compare-expression | tuple-expression)
compare-expression ::= name-expression space compare-operation
space value-expression
tuple-expression ::= name-expression space tuple-operation
space tuple-value-expression
tuple-value-expression ::= "[" value-expression
("," value-expression)* "]"
name-expression ::= attribute-name ( "." attribute-name )*
| "[" attribute-name ("." attribute-name)* "]"
value-expression ::= ( string-expression | number-expression
| boolean-expression )
string-expression ::= "'" ( [^'] | [']{2} )* "'"
number-expression:: = ( "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7"
| "8" | "9" )+
boolean-expression::= ("true" | "false")
compare-operation ::= ("eq" | "=" | "ne" | "<>" | "!=" | "gt" | ">"
| "lt" | "<" | "ge" |">=" | "le" |"<="
| "startsWith" | "endsWith")
tuple-operation ::= ( "in" | "not in" | "contains")
-
attribute -name は各 API で規定される属性名を表します。
-
attribute -name 、string-expressionは大文字小文字を区別します。それ以外は、大文字小文字を区別しません。
-
string-expression を指定する場合、シングルクォーテーション(')で囲む必要があります。
シングルクォーテーションを含む文字列を指定する場合は、次の例のように指定します。
-
指定したい文字列: I' m
-
指定後の文字列:'I'' m'
-
-
string-expressionは、UTF-8 形式の文字コードに変換されてから比較されます。
サポートするデータ型
$queryパラメータで使用する表現とREST APIでサポートするデータ型の対応関係について、次の表に示します。
| 使用する表現 | REST APIでサポートするデータ型 |
|---|---|
| boolean-expression | boolean |
| number-expression |
int long |
| string-expression |
string ISO8601String link |
サポートする演算子
$queryパラメータでサポートする演算子を次の表に示します。優先度は、数字が小さいほうが優先されます。
| 演算子 | 説明 |
指定できる表現 |
優先度 |
|---|---|---|---|
|
eq または = |
等しい |
boolean-expression number-expression string-expression |
1 |
|
ne または <> または != |
等しくない |
boolean-expression number-expression string-expression |
1 |
|
gt または > |
より大きい |
number-expression string-expression |
1 |
|
lt または < |
より小さい |
number-expression string-expression |
1 |
|
ge または >= |
以上 |
number-expression string-expression |
1 |
|
le または <= |
以下 |
number-expression string-expression |
1 |
| startsWith | (この)文字列で始まる |
string-expression ISO8601Stringを除きます。 |
1 |
| endsWith | (この)文字列で終わる |
string-expression ISO8601Stringを除きます。 |
1 |
| in |
含まれる |
number-expression string-expression |
1 |
| not in |
含まれない |
number-expression string-expression |
1 |
| contains |
どれかが含まれている |
number-expression string-expression 配列型の要素を指定できます。 |
1 |
| and | どちらも真である |
compare-expression tuple-expression |
2 |
| or | どちらかが真である |
compare-expression tuple-expression |
3 |