Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Swift
- 멋사
- uikit
- composable architecture
- 대외활동
- 컴퓨터그래픽스
- 웹
- widget
- TCA
- widgetkit
- spritekit
- dispatchqueue
- cs
- SwiftUI
- 운영체제
- c++
- 스위프트
- 네트워크
- 멋쟁이사자처럼
- 1일1알골
- 백준
- 위젯킷
- 영남대
- 리액트
- 후기
- swift concurrency
- 문법
- 스유
- Protocol
- 알고리즘
Archives
- Today
- Total
맛동산이
Swift) CodingKey, API명과 codable 타입 이름이 다를때 매핑하는법 본문
CodingKey는 백엔드에서 오는 API의 이름과 Client측 앱의 Decoding, Encoding시 이름이 다른것을 서로 매핑해주는 기능이다.
예를 들어서, 백엔드에서는 스네이크타입의 이름이, 클라이언트측에서는 카멜타입의 이름이 들어온다고 할때, 이를 매핑해주는 방법이 바로 CodingKey이다.
사용하는 방법
우선 우리가 기존의 Codable을 사용하는 방법은 다음과 같다.
struct SomeDecodingType: Codable {
let number: Int
let name: String
let roadAddress: String
}
이런 방법으로 타입 모델을 설정해주게 되는데, 이때 만약 백엔드에서 스네이크로 들어오면 해당 타입과 이름이 다르기 때문에 문제가 생긴다.
실제 JSON파일이 다음과 같다면
{
number: 12
name: "jinYong"
road_address: "Daegu"
}
이제 타입의 이름이 달라서 문제가 발생할것이다.
이를 코딩키를 통해서 매핑해줄수있다.
CodingKey
struct SomeDecodingType: Codable {
let number: Int
let name: String
let roadAddress: String
enum CodingKey: String, CodingKey {
case number = "number"
case name = "name"
case roadAddress = "road_address"
}
}
이 방법을 통해서 자연스럽게 백엔드와의 네임 매핑이 되기 때문에 편하게 API를 사용할수 있게 된다.
반응형
'앱 > Swift' 카테고리의 다른 글
Swift) DynamicMemberLookUp(feat. subscript) 정리 (0) | 2024.01.01 |
---|---|
Swift) KeyPath란 (0) | 2024.01.01 |
Swift) NSCache와 NSDictionary (0) | 2023.09.07 |
Swfit) static library, dynamic library의 차이에 대해서(feat. framework) (0) | 2023.09.07 |
Swift) 비동기 프로그래밍에 대한 이해 (0) | 2023.08.31 |