일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- RxCocoa
- collectionview
- Human interface guide
- uiscrollview
- Clean Code
- map
- Observable
- clean architecture
- uitableview
- 클린 코드
- SWIFT
- rxswift
- 애니메이션
- swiftUI
- Xcode
- combine
- ios
- MVVM
- HIG
- swift documentation
- tableView
- Refactoring
- ribs
- UICollectionView
- 리펙토링
- UITextView
- 리펙터링
- Protocol
- 리팩토링
- 스위프트
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 3. 서버 - Alamofire (RESTful API) 본문
* 파운데이션 프레임워크에서는 API호출하기 위해 URLRequest객체를 만들어서 사용했지만, Alamoifire는 더욱 간편하게 접근 할 수 있도록 함
* 실습에 앞서 프로젝트에 ATS설정하기
1. Alamofire
- HTTP네트워크 통신을 위한 스위프트 기반으로 개발된 비동기 라이브러리
2. Alamofire를 이용한 요청과 응답
1) 요청(request) : Alamofire.request(...)
- Parameters 자료형은 Alamofire프레임워크 속 자료형 [String : Any]
- 안에 들어갈 Key값은 서버에서 제공하는 API문서를 보고 확인
- 단, 12번라인에서 요청을 하는 동시에 req에 응답이 들어옴
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
// import Alamofire
let param: Parameters = [
"userId" : "imustang",
"name" : "iOS개발 블로거"
]
let headers: HTTPHeaders = [
"Authorization" : "123",
"Accept" : "application/json"
]
let req = Alamofire.request("호출할 URL",
method: .post,
parameters: param,
encoding: JSONEncoding.default,
headers: headers)
|
* 파라미터
- method : 생략할 시 GET방식
- parameters : 항상 딕셔너리형태
- encoding : .methodDependent (메소드에 따라 인코딩 타입이 자동으로 결정)
.JSONEncoding.default (JSON파일)
.queryString (GET 전송에서 사용되는 방식)
.httpBody (POST 전송에서 사용되는 방식)
- headers : 딕셔너리형태
2) 응답(response)
- 응답되는 형식은 API문서를 보고 확인
1
2
3
4
5
6
7
8
9
|
req.responseJSON() {res in
print(response.result.value!)
guard let jsonObj = res.result.value as? [String: Any] else {return}
let v1 = jsonObj["userId"]!
let v2 = jsonObj["name"]!
}
|
- 1번째 줄에, 응답으로 받을 자료형을 구분해줄 수 있음
responseString()
responseJSON()
responseData() // 응답 메시지의 본문을 바이너리 데이터로 반환하여 전달
'iOS 실전 (swift) > 서버' 카테고리의 다른 글
[iOS - swift] 6. 서버 - OAuth, Key Chain, 로그인 관리 토큰 (0) | 2020.04.25 |
---|---|
[iOS - swift] 5. 서버 - Indicator View (버퍼링 표현) (0) | 2020.04.25 |
[iOS - swift] 4. 서버 - Alamofire를 이용한 회원가입 요청, 응답 (0) | 2020.04.24 |
[iOS - swift] 2. 서버 - RESTful API 실습 (Foundation framework사용) (0) | 2020.04.24 |
[iOS - swift] 1. 서버 - HTTP, RESTful API (0) | 2020.04.23 |