[swift] Swift로 REST API 요청 보내기

REST API는 웹 애플리케이션과 서버 사이의 통신을 위한 표준 방법입니다. 이제 Swift로 REST API 요청을 보내는 방법에 대해 알아보겠습니다.

URLSession을 사용하여 GET 요청 보내기

Swift에서는 URLSession을 사용하여 HTTP 요청을 보낼 수 있습니다. 아래의 코드 예제는 GET 요청을 보내는 방법을 보여줍니다.

import Foundation

func performGetRequest(url: URL, completion: @escaping (Data?, URLResponse?, Error?) -> Void) {
    let session = URLSession.shared
    let task = session.dataTask(with: url) { (data, response, error) in
        completion(data, response, error)
    }
    task.resume()
}

// 사용 예시
if let url = URL(string: "https://api.example.com/posts") {
    performGetRequest(url: url) { (data, response, error) in
        // 응답 처리
        if let data = data {
            // 데이터 파싱
        }
    }
}

위의 코드는 performGetRequest 함수를 정의하고, 해당 함수를 사용하여 GET 요청을 보내는 예제입니다. URLSession.shared.dataTask(with:completionHandler:) 메서드를 사용하여 요청을 보내고, 응답을 처리합니다.

URLSession을 사용하여 POST 요청 보내기

POST 요청을 보내려면 URLSession을 사용하여 HTTP body에 필요한 데이터를 포함시켜야 합니다. 아래의 코드 예제는 POST 요청을 보내는 방법을 보여줍니다.

import Foundation

func performPostRequest(url: URL, body: Data, completion: @escaping (Data?, URLResponse?, Error?) -> Void) {
    var request = URLRequest(url: url)
    request.httpMethod = "POST"
    request.httpBody = body
    
    let session = URLSession.shared
    let task = session.dataTask(with: request) { (data, response, error) in
        completion(data, response, error)
    }
    task.resume()
}

// 사용 예시
if let url = URL(string: "https://api.example.com/posts") {
    let requestBody: [String: Any] = [
        "title": "제목",
        "content": "내용"
    ]
    if let body = try? JSONSerialization.data(withJSONObject: requestBody) {
        performPostRequest(url: url, body: body) { (data, response, error) in
            // 응답 처리
            if let data = data {
                // 데이터 파싱
            }
        }
    }
}

위의 코드는 performPostRequest 함수를 정의하고, 해당 함수를 사용하여 POST 요청을 보내는 예제입니다. URLSession.shared.dataTask(with:completionHandler:) 메서드를 사용하여 요청을 보내며, 요청에 필요한 데이터는 URLRequesthttpBody에 설정됩니다.


이제는 Swift로 REST API 요청을 보내는 방법에 대해 알게 되었습니다. 더 자세한 내용은 Swift 공식 문서나 여러 예제를 참조해 보시기 바랍니다.