Encode Query
クエリオブジェクトをURLエンコードされたクエリ文字列にエンコードします。
この関数カードは、Decode Query関数の逆の動作を行います。
このカードを使用するには、Construct、Set、Zip関数カードなどのオブジェクト関数を使用してクエリオブジェクトを構築します。オブジェクトを作成するには、前の手順の動的入力を使用するのが一番簡単です。
入力
フィールド | 定義 | タイプ | 必須 |
---|---|---|---|
data(データ) |
クエリオブジェクト。 |
オブジェクト |
TRUE |
出力
フィールド | 定義 | タイプ |
---|---|---|
output(出力) |
クエリのエンコードされた文字列。 |
テキスト |
区切り記号と特殊文字
APIリクエストを実行する際には、サーバーが特殊文字を正確に解釈するようにそれらの文字をエンコードすることが不可欠です。ただし、URLで使用される区切り記号はエンコードしないでください。
特殊文字には、スペース、句読点、非ASCII文字が含まれます。これらの文字を適切にエンコードしないと、URLに問題が生じる可能性があります。
区切り記号はURL構造の不可欠な部分であるため、エンコードしないでください。クエリ文字列の?区切り記号はURL内のリテラル文字です。この区切り記号を使用することで、Webサーバーはパスの終了位置とクエリ文字列の開始位置を認識できます。
「特殊文字と区切り記号」を参照してください。
次に、この概念をさらに詳しく示す例をご紹介します。
-
適切なエンコード:https://www.acme.com/api/product/?category=furniture&color=blue%2Fred
-
不適切なエンコード:https://www.acme.com/api/product/%3Fcategory=furniture&color=blue%2Fred
クエリ文字列の?区切り記号は最初のURLのリテラル文字ですが、2番目のURLで%3Fと不適切にエンコードされています。この区切り記号は、WebサーバーがURLパスの終了位置とクエリ文字列の開始位置を認識するために必要です。
ただし、特殊文字のスラッシュ/がクエリパラメーター値内で%2Fとエンコードされていることに注意してください。このエンコードがなければ、Webサーバーによって誤ってパスと解釈される可能性があります。
例
次の例は、ユーザーの名前と地域からURLの検索クエリを作成する方法を示しています。
エンコードされた文字列は、Encode Queryカードと次のオブジェクトを[data(データ)]入力として使用することで作成できます。
{
"name": "John Doe",
"region": "North America"
}
Encode Queryカードを適用すると、入力オブジェクトはクエリ文字列name=John%20Doe®ion=North%20Americaにエンコードされます。
その後、ConcatenateまたはFormat関数カードでこのクエリ文字列とベースURLを連結することで、https://www.example.com/searchcustomers?name=John%20Doe®ion=North%20Americaのような完全なURLを作成できます。