Model
모델이란 데이터 타입을 의미한다. 보통 API 통신에서 대응하기 위해 자주 쓰는 느낌이 있지만 사실 Local에서도 올 수 있다는 걸 유념하자
API 쓰기 위해 파악할 것
API에서 보내는 데이터를 파악해야 한다. 이를 위해서는 API를 공개하고 있는 문서를 찾고, 해당 문서에서 스킴(Schem) 혹은 스키마(Schema)를 찾아라. 이를 이용하여 데이터 타입을 추론할 수 있고 Model을 만들 수 있다.
영상에서는 스키마를 복사 붙여넣기 하고 멀티라인 드래그를 통하여 프로퍼티를 만드는 방법으로 모델 struct를 제작했다.
하지만, 난 아프라즈와는 달리 QuickType이라는 사이트 추천하고 싶다. QuickType은 스키마나, API 결과로 나온 Json을 복사&붙여 넣기만으로 자동으로 원하는 언어의 Model을 만들어준다. 특히 프로퍼티가 많은 경우 훨씬 일이 줄어 고마운 사이트이다.
https://quicktype.io
API의 데이터 key값과 스위프트의 명명법이 다른 경우
예를 들어 API 통신의 결과로 air_date = "2017-01-11" 이라는 데이터를 받았다고 가정하자.
하지만, 스위프트에서는 Lower Camel Case를 사용해서 프로퍼티를 만든다. 어떻게 할까?
let airDate: String
아프라즈는 그냥 air_date로 만들었다. 그런데 신경 쓰이는 건 사실이니까 나는 CodingKey 프로토콜을 사용했다.
CodingKey는 값을 앞서 언급한 상황에서 원하는 이름으로 매칭을 도와주는 역할을 한다.
struct RMEpisode: Codable {
let id: Int
let name, airDate, episode: String
let characters: [String]
let url: String
let created: String
enum CodingKeys: String, CodingKey {
case id, name
case airDate = "air_date"
case episode, characters, url, created
}
}
끝!
'Swift > Rick & Morty' 카테고리의 다른 글
[iOS] Rick&Morty - #6 Character List View (0) | 2023.03.03 |
---|---|
[iOS] Rick&Morty - #5 API Call (0) | 2023.03.02 |
[iOS] Rick&Morty - #4 API Request (0) | 2023.03.01 |
[iOS] Rick&Morty - #2 Source Control과 API Design (0) | 2023.02.27 |
[iOS] Rick&Morty - #1 Setup (0) | 2023.02.26 |