YagSill

Swift Alamofire API 예제 본문

Swift 통신

Swift Alamofire API 예제

YagSill 2022. 3. 24. 10:15
728x90

안녕하세요 YagSill 입니다.

 

오늘은 Swift의 핵심 라이브러리인 Alamofire에 대해서 알아보겠습니다.

 

기본적으로 URLSession을 통한 API호출은 다들 관심이 없으실 겁니다 왜냐면 검색창에 Alamofire라고 치고 들어오셨을 테니까요 ㅋㅋ

 

코드는 이렇습니다.

 

Alamofire.request("url을 넣어주시면 됩니다.", method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).validate(statusCode: 200..<500).responseJson { (response) in
     
     switch response.result {
         case .success :
               print("성공")
               // 이제 여기다가 response 데이터를 가지고 잘 가지고 노시면 됩니다 ㅋㅋ
            case .failure(let error) :
                print(error)
                // 요 부분은 Alamofire를 호출했을 때 만약 에러가 난다면 어떤 에러가 났는지 터미널창에 띄우는 겁니다.
               
            }

 

기본적으로 method 는 .get을 이용했습니다.

파라미터도 없구요 헤더도 없이 호출할겁니다.

 

"url을 넣어주시면 됩니다." -> 이 부분에는 호출하려는 API의 url을 넣어주시면 되요.

 

예를 들어 보겠습니다.

 

https://jsonplaceholder.typicode.com/users

 

요 사이트에서 JSON 데이터를 호출해 보겠습니다.

[
  {
    "id": 1,
    "name": "Leanne Graham",
    "username": "Bret",
    "email": "Sincere@april.biz",
    "address": {
      "street": "Kulas Light",
      "suite": "Apt. 556",
      "city": "Gwenborough",
      "zipcode": "92998-3874",
      "geo": {
        "lat": "-37.3159",
        "lng": "81.1496"
      }
    },
    "phone": "1-770-736-8031 x56442",
    "website": "hildegard.org",
    "company": {
      "name": "Romaguera-Crona",
      "catchPhrase": "Multi-layered client-server neural-net",
      "bs": "harness real-time e-markets"
    }
  },

 

뭐 이런식으로 Json 데이터가 넘어오는 것같습니다?

 

그렇담 저희는 이 데이터의 구조에 맞게 struct 구조를 만들어 줘야겠쬬?

 

struct SampleJson : Codable {
 let id : Int
 let username : String
 let email : String
 let address : addressData
 let phone : String
 let website : String
 let company : companyData
 
     struct addressData : Codable {
      let street : String
      let suite : String
      let city : String
      let zipcode : String
      let geo : geoData
  
          struct geoData : Codable {
            let lat : String
            let lng : Double
          }
     
     }
     
     struct companyData : Codable {
     	let name : String
      	let catchPhrase : String
      	let bs : String
     }
     
}

 

struct 구조를 만들어 줍니다.

 

그리고 아까 처음의 Alamofire 코드에 한번 넣어보도록 하죠

 

Alamofire.request("https://jsonplaceholder.typicode.com/users", method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).validate(statusCode: 200..<500).responseJson { (response) in
     
     switch response.result {
         case .success :
               print("성공")
               print(response)
            case .failure(let error) :
                print(error)
                // 요 부분은 Alamofire를 호출했을 때 만약 에러가 난다면 어떤 에러가 났는지 터미널창에 띄우는 겁니다.
               
            }

 

이렇게 호출하게 되면 Json 데이터가 쭈우우욱 넘어오게 됩니다~~~

궁금하신 사항은 댓글로 남겨주세요!!

728x90