Как использовать UITextField с Alamofire? - PullRequest
0 голосов
/ 07 апреля 2020

Я недавно начал использовать Alamofire поверх URLSession, просто чтобы чувствовать себя комфортно и переключаться на более удобочитаемую простую кодовую базу. Я создаю приложение, в котором у меня есть UITextField, и всякий раз, когда пользователь что-то пишет и нажимает клавишу возврата, он ищет в API определенные данные c. Я хотел бы начать с печати этих данных в консоли на данный момент, но я не могу понять, как это сделать. Как я могу добиться этого для поиска любых определенных c данных из моей модели?

РЕДАКТИРОВАТЬ: Базовый URL выглядит следующим образом: "https://api.themoviedb.org/3/search/movie?api_key= [API_KEY] ". Для поиска определенного заголовка c мы добавляем «& query = [название фильма]». Как я могу добавить эту последнюю часть запроса к тому, что пользователь вводит в текстовое поле?

PS: я использовал ObjectMapper для моей модели.

1 Ответ

0 голосов
/ 07 апреля 2020

Если мы получим ответ на вызов API по умолчанию как json, например

"success" : true,
"message" : "successfull"
"data" : {
       "field1" : "some data"
       }
}

Таким образом, мы можем обработать этот ответ следующим образом

AF.request(URL(string: "myurl.com")!,
               method: .get, 
               headers: AppConstants.headers)
        .validate(statusCode:200..<300)
        .validate(contentType:[AppConstants.contentTypeJson])
        .responseJSON { (response) in
            switch response.result {
            case .success(let data):
                guard let json = data as? [String:AnyObject] else {
                    return
                }

                let isSuccess =  (json["success"])?.boolValue ?? false
                if isSuccess {
                    print(json) //You can do something with response
                }else{
                    Data.currentError = (json["message"]) as? String ?? "-"
                }

            case .failure(let error):
                print(error)
            }
    }

подробнее: https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#response -Обработка

...