URL 중간에 변수를 집어넣어 API 호출하기

Challenger·2021년 9월 27일
0
post-custom-banner

문제 상황

RIOT API를 사용해야 하는 상황
SearchBar를 통해 아이디를 검색하고 싶은데

소환사 정보를 가져오는 API는 다음과 같다

https://kr.api.riotgames.com/lol/summoner/v4/summoners/by-name/<name>?api_key?<apikey>

apikey는 고정이라 상관이 없는데 name에 들어갈 소환사 이름은 항상 바뀌기 때문에 이걸 처리해줘야 하는 상황이다

1차 시도(실패)


URL 문자열 중간에 name을 넣어서 하려고 했는데 이건 컴퓨터가 못 읽더라

지금 배우고 있는 강의에서는 QueryItem을 추가해서 인코딩해주었는데 내가 사용하려는 API는 그런 구조가 아닌 것 같아서 사용하기 어려웠다 (내가 모르는 것일 수 있으나 따라했더니 안 됐음)

그래서 name이라는 문자열이 애초에 인코딩된 상태로 들어갈 필요가 있었음

2차 시도(성공)


검색해보니 이렇게 바로 인코딩작업을 진행해줄 수 있더라


그래서 name을 인코딩한 nameIncoding을 URL 문자열 안에 넣었더니 잘 된다

고로 고로 고로케 (너무 신나서 죄송...)

고로 UISearchBar에서도
let name = UISearchBar.text
let nameIncoding = name.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
이렇게 작업하면 서치바에 나오는 텍스트를 통해 바로 URL을 호출할 수 있을 것 같다

아직 안 해봤으니 해보고 후기를 추가해보겠다

profile
롤 챌린저의 100일 개발 도전기
post-custom-banner

0개의 댓글