class func getData(
Id: Int,
completion: @escaping (_ response: DataResponse<MapFeatureCard>) -> Void)
{
let urlPath = "https://site.ru/api/v11/superobjects/"+String(Id)
Alamofire.request(urlPath)
.validate()
.cache(maxAge: 60, isPrivate: false, ignoreServer: true)
.responseObject { (response: DataResponse<MapFeatureCard>) in
completion(response)
}
}
Как видите ничего сверх сложного нет. Но тут ответ из JSON мапится в словарь структур DataResponse .
Но хотелось бы указывать в параметрах getData типа который будет мапится и чтоб по умолчанию стояло было DataResponse ( чтоб существующий код не ломать )
Вот как-то так хочется:
class func getData(
Id: Int,
RespType: Type = DataResponse<MapFeatureCard>,
completion: @escaping (_ response: RespType) -> Void)
{
let urlPath = "https://site.ru/api/v11/superobjects/"+String(Id)
Alamofire.request(urlPath)
.validate()
.cache(maxAge: 60, isPrivate: false, ignoreServer: true)
.responseObject { (response: RespType) in
completion(response)
}
}
Но что-то не получается или как-то некрасиво получается, подскажите красивое решение