잊어버리기 전에 빠르게 기록.
query string을 list<object> 형태로 받는 api에 요청을 보내려고 했다.
아래는 api 스펙 예시
| query param | type |
|---|---|
| myWeightAndHeight | List<Obejct> |
| myWeightAndHeight[].weight | number |
| myWeightAndHeight[].height | number |
curl -X GET --location "https://my-service-host/api/info/personal?myWeightAndHeight%5B0%5D.weight=123&myWeightAndHeight%5B0%5D.height=321" \
-H "Content-Type: application/json" \
...
myWeightAndHeight 뒤에 붙는 %5B0%5D가 뭘까?
Percent-encoding이다.
url parameter에 특수문자를 삽입할 수는 없으니 %(percent)를 붙인 문자열로 해당 특수문자를 인코딩하는 것이다.
즉 파라미터로 들어오려는 List<object> 타입을 인덱스로 접근해야 하는데
[를 %5B]를 %5D처럼 인코딩을 하는 것이다.
즉 %5B0%D = [0]