[2024 GDSC] Wetox-iOS Project API μ°λ
2024 Google Solution Challenge
https://github.com/GDSC-Wetox/Wetox-iOS
GitHub - GDSC-Wetox/Wetox-iOS: GDSC-Hongik Wetox iOS
GDSC-Hongik Wetox iOS . Contribute to GDSC-Wetox/Wetox-iOS development by creating an account on GitHub.
github.com
λ§€μΌλ§€μΌ κ°λ°λ‘ λΆνμ°λ μ€μ λλ€. . π©ππ₯
λλμ΄ μλ² API μ°λμ μλ£νλ΅λλ€!! κΊμΈ
λ¨μ κ²μ λ°ν μμ μ€λΉ λΏ .
μ λ§ λ€νΈμν¬ μ°λ μ½λ μ§λ κΈ°κ³κ° λμμ΄μ . .
μ μΆ λλ΄κ³ , MVVM 리ν©ν λ§λ κΌ¬μ₯ ν΄μΌμ§
리μ‘νΈ μ½λλ μ λλ‘ κ³΅λΆνκ³ λ€μ μ§κ³ μΆμ΄μ
# μλλ° νλ π±
# λλ€μ μ€λ³΅ κ²μ¬ API
# μΉκ΅¬ μμ² λ° μλ½ API
# AI μμ± νλ‘ν κ°μ Έμ€κΈ° API
μ΄ μΉκ΅¬ ꡬννλλ° κ½€λ κ³ λ―Όνμ π€
μλ²μμ 보λ΄λ κ°μ΄ URL μ£Όμλ JSONμ΄ μλλΌ,
PNG λ°μ΄ν°λ₯Ό κ·Έλλ‘ μλλ°, μ΄κ±Έ λ°μμ¬ λ,
Observableμ response κ°μ²΄λ₯Ό μ μΈν΄μ λ°λκ² μλλΌ
Data λ°λ‘ λ°μμ€λ λ°©μμΌλ‘ ꡬνν΄μΌ νμ΄μ
public class RegisterAPI {
static let registerProvider = MoyaProvider<RegisterService>(plugins: [MoyaLoggerPlugin()])
static func postNicknameValidRequest(nickname: NicknameValidRequest) -> Observable<NicknameValidResponse> {
let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .formatted(DateFormatter().mapDateFormat())
return registerProvider.rx.request(.postNicknameValidRequest(nickname: nickname))
.map(NicknameValidResponse.self, using: decoder)
.asObservable()
.catch { error in
if let moyaError = error as? MoyaError {
switch moyaError {
case .statusCode(let response):
print("HTTP Status Code: \(response.statusCode)")
case .jsonMapping(let response):
print("JSON Mapping Error for Response: \(response)")
default:
print("Other MoyaError: \(moyaError.localizedDescription)")
}
}
return Observable.error(error)
}
}
static func getAIProfileImage() -> Observable<Data> {
return registerProvider.rx.request(.getAIImage)
.map { response -> Data in
return response.data
}
.asObservable()
.catch { error in
if let moyaError = error as? MoyaError {
switch moyaError {
case .statusCode(let response):
print("HTTP Status Code: \(response.statusCode)")
default:
print("Other MoyaError: \(moyaError.localizedDescription)")
}
}
return Observable.error(error)
}
}
}
λκ°. . λ func μ μ°¨μ΄κ° λκ»΄μ§μ§μ . . π©π
κΈ°κ³μ μ½λ©νλ€κ° ν λ° μ£ΌμΆ€νλ ννΈ
ν λ λ² κ΅¬νν΄λλ©΄ λ€λ₯Έμ λ€μ μλ‘ κ΅¬μ‘°κ° μ·λΉμ·λΉ νκ±°λ±μ
λ§κ°κΉμ§ νμ΄ν ν !!