URLComponents

김윤홍·2024년 10월 15일

URLComponents란?

URLComponents
URLComponents는 URL을 구성하는 구조이다.
공식문서

scheme: 접근할 방법을 정의해 둔 프로토콜
host: 접근할 서버의 호스트 이름
path: 호스트에서 제공하는 리소스의 경로
query: 요청받을 리소스의 범위를 좁히기 위해 사용 Query는 질문 형식인 "?"뒤에 연결되는 name-value의 쌍으로 구성되어 있다. 또한 &를 통해 여러 Query추가가 가능하다.


URLComponents사용

URL을 만드는 것은 어렵지 않다.(optional URL instance를 반환한다.)

var url = URL(string: "https://myapi.com")

path를 URL에 추가하는 것 또한 어렵지 않다.

url = url?.appendingPathComponent("users")

하지만 이렇게 계속 query parameters를 추가하게 된다면 점점 지저분한 코드가 될것이다.

var components = URLComponents()
components.scheme = "https"
components.host = "velog.io"
components.path = "/@hong2"
components.query = "posts"

components.url //https://velog.io/@hong2/posts

위의 방법 이외에도 Query파라미터를 깔끔하게 다룰 수 있는 URLQueryItem이 있습니다. 키값과 value로 되어있어 각각의 값을 넣어주기만 하면 됩니다.

var components = URLComponents(string: "https://example.com")!
let keyword = URLQueryItem(name: "key", value: "iOS")
let page = URLQueryItem(name: "value", value: "Developer")
components.queryItems = [keyword, page]

다른 방법도 보겠습니다

let baseURL = https://example.com
let url = baseURL.appending(queryItems: [
    apiKey,
    keyword,
    page
])

let request = URLRequest(url: url)

0개의 댓글