Reactor API での応答のフィルタリング
Reactor API でリスト(GET)エンドポイントを使用する場合、返される結果をレコードのサブセットに制限する必要が生じる場合があります。 これを実現するために、API リストエンドポイントの多くは、特定の属性でフィルタリングする機能をサポートしています。代わりに、API に対して構造化クエリを実行する場合は、 検索 に関するガイドを参照してください。
フィルター構文
次の例では、GET リクエストのフィルターの実装方法を説明します。
API 形式
特定のリストエンドポイントに対する応答をフィルタリングするには、リクエストパスで filter
クエリパラメーターを指定する必要があります。
[]
)とスペース文字を使用しています。実際には、RFC 3986 で説明されているように、これらの文字は URI エンコードする必要があります。このガイドの後半で、適切にエンコードされたリクエストパスの例を示します。GET {ENDPOINT}?filter[{ATTRIBUTE_NAME}]={OPERATOR} {VALUE}
{ENDPOINT}
{ATTRIBUTE_NAME}
{OPERATOR}
{VALUE}
に対する結果の評価方法を決定する演算子。サポートされる演算子については、 付録の節 を参照してください。{VALUE}
EQ
演算子を使用して等価を比較する場合、値を応答に含めるには、大文字と小文字を区別した完全一致の値を指定する必要があります。リクエスト
次のリクエスト例では、ライブラリの state
属性が published
と等しい必要があるフィルターを適用して、公開済みライブラリのリストを取得します。
URI エンコードの前のリクエストパスでのこのフィルターの構文は、次のようになります。
https://reactor.adobe.io/properties/PR906238a59bbf4262bcedba248f483600/libraries?filter[state]=EQ published
パスパラメーターとクエリパラメーターが URI エンコードされると、次のような API リクエストで使用できます。
curl -X GET \
https://reactor.adobe.io/properties/PR906238a59bbf4262bcedba248f483600/libraries?filter%5Bstate%5D=EQ%20published \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}'
複数の値でのフィルタリング multiple-values
1 つの属性に対して複数の値でフィルタリングするには、値をコンマ区切りリスト形式で指定します。
GET {ENDPOINT}?filter[{ATTRIBUTE_NAME}]={OPERATOR} {VALUE_1},{VALUE_2}
複数のフィルターの使用
複数の属性にフィルターを適用するには、各属性に filter
パラメーターを指定します。パラメーターはアンパサンド(&
)で区切る必要があります。
GET {ENDPOINT}?filter[{ATTRIBUTE_NAME_1}]={OPERATOR} {VALUE}&filter[{ATTRIBUTE_NAME_2}]={OPERATOR} {VALUE}
付録
次の節では、Reactor API でのフィルターの使用方法について説明します。
サポートされるフィルター演算子 operators
次の表に、フィルターパラメーターでサポートされる演算子の値を示します。フィルターの条件となる属性に応じて、使用可能なすべてのフィルター演算子が適用されるわけではないことに注意してください(文字列属性に対する「less than」や「greater than」演算子の使用など)。
EQ
NOT
LT
GT
BETWEEN
CONTAINS