Swift URL L4.4.1

Building The Url

We initialize a URLComponents object and set the scheme host and path attributes with normal string values. The we initialize an array to store the query parameters composed of URLQueryItem objects which we assign to the queryItems attribute and simply append URLQueryItem objects to the array.

import Foundation

var components = URLComponents()  
components.scheme = "https"  
components.host = "api.flickr.com"  
components.path = "/services/rest"  
components.queryItems = [URLQueryItem]()

let queryItem1 = URLQueryItem(name: "method", value: "flickr.photos.search")  
let queryItem2 = URLQueryItem(name: "api_key", value: "1234")  
let queryItem3 = URLQueryItem(name: "text", value: "purple")

components.queryItems!.append(queryItem1)  
components.queryItems!.append(queryItem2)  
components.queryItems!.append(queryItem3)

print(components.url!)  

URLComponents objects take care of making sure that our urls are properly escaped and contains safe ASCII characters along with inserting the proper "&", "=", "?" etc.

Prints:

https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=1234&text=purple