プラス記号によるエンコーディングの問題
Talend Cloud API Testerでのエンコーディングの動作が変更されたことにより、プラス記号が含まれているクエリーで問題が発生する場合があります。
Talend Cloud API TesterがWebformエンコーディングからパーセントエンコーディングに切り替わりました。この変更は、OData API ( Talend Cloud Data Inventory で生成されたものなど)のサポート改善を目的として行われたものです。ただし、スペースとして解釈される必要があるプラス記号( + )が含まれているクエリーパラメーターを使用していない限り、この影響はありません。
Talend Cloud API Testerではプラス記号がエンコードとして解釈されなくなったため、+が含まれているクエリーパラメーターでは[Encode before sending] (送信前にエンコード)オプションがデフォルトで有効になります。このオプションを無効にしない場合、+は%2Bとしてエンコードされるため、スペースではなく実際のプラス記号として解釈されます。
この問題は、次の方法で回避できます。
- クエリーパラメーターで[Encode before sending] (送信前にエンコード)オプションを無効にする
- +記号を、スペース、またはスペースの新しいエンコーディングである%20に置き換える
このエンコーディング機能の詳細は、クエリーパラメーターエンコーディングをご覧ください。
例
たとえばStar Wars APIでLeia Organaを検索するとすれば、次のように指定します。
- https://swapi.dev/api/people/?search=Leia Organa: この場合、クエリーパラメーターはエンコードされています。
- https://swapi.dev/api/people/?search=Leia%20Organa: この場合、クエリーパラメーターはエンコードされていません。
以前の動作であればhttps://swapi.dev/api/people/?search=Leia+Organaでも同じ結果になったはずですが、現在のエンコーディングではクエリーパラメーターがデフォルトでエンコードされています。このリクエストでは結果が返されず、+が%2Bとエンコードされた状態でHTTPタブに表示されます。
[Encode before sending] (送信前にエンコード)オプションを無効にすれば、期待される結果が得られます。