class NetworkService {
let scheme: String = "https"
let host: String = "reqres.in"
let path: String = "/api/login"
let method = "POST"
let headers = ["Content-Type": "application/json"]
private func makeURL() -> URL? {
var components = URLComponents()
components.scheme = scheme
components.host = host
components.path = path
return components.url
}
private func makeRequest() -> URLRequest? {
guard let url = makeURL() else { return nil }
var request = URLRequest(url: url)
request.allHTTPHeaderFields = headers
request.httpMethod = method
return request
}
URLSession을 사용하는 NetworkService 클래스를 만들고 모달뷰에서 사용하는 구조로 코드를 짜야함.
그래서 클래스 안에 기본 인스턴스를 선언해주고, 그 인스턴스를 가지고 URL을 만들고 Request를 만들어 줬다.
메서드가 계속 물고들어가는 방식으로 구현함.
이 다음 메서드에서도 위 메서드를 물고가는 방식으로 구현할 예정인데,
URLSession을 생성하고, Task를 만들어야 함.
let session = URLSession(Configuration: .default)
session.dataTask(with: request) { data, response, error in
//URLSession 인스턴스를 만든 다음, Task를 만듦
let session = URLSession.shared.dataTask(with: request) { data, response, error in
// shared 타입 프로퍼티를 사용해서 한줄로 정리
서버 데이터를 불러오는 메서드를 구현하는 중인데 개념 정리부터 차근차근 해봐야겠음...
'TIL' 카테고리의 다른 글
| 2025.05.19 트러블 슈팅(RxSwift 개인과제) (0) | 2025.05.19 |
|---|---|
| [iOS]2025.05.12 RxSwift (0) | 2025.05.12 |
| [iOS]2025.05.08 URLSession, Alamofire (0) | 2025.05.08 |
| [iOS]2025.04.15 TIL (1) | 2025.04.15 |
| [iOS] 2024.04.14 TIL (0) | 2025.04.14 |