Есть ли способ провести различие между успешными и ошибочными ответами API в Swift, когда в ответе нет статуса запроса?

#swift

#swift

Вопрос:

Я создаю страницу входа в систему, и я использовал для обработки ошибок API, таких как:

 {"status":"error","answer":"Password is wrong"}
  

таким образом:

 if error?["status"] as? String == "error" {
 Alert.showBasic(title: error!["status"] as! String, message: error!["answer"] as! String, vc: self)
  

Это сработало отлично. Но теперь я работаю с другим API, который отвечает на мой запрос таким образом:

 {"password":["password is wrong"]}
  

Путаница, которую я испытываю, заключается в том, что я не получаю из ответа API статус для моего запроса, например, успех или ошибка.

Есть ли способ справиться с этим?

Комментарии:

1. Как выглядит ответ, когда он завершается успешно?

2. Выглядит так же! вот пример успеха: {«телефон»:»123456789″, «электронная почта»:»someemail@ios.com «,»идентификатор»: 147}

3. Я не знал, что могут быть ответы API полностью без кода состояния: o

4. Но выглядит ли ответ так же, когда есть ошибка, я сомневаюсь в этом?

5. Ответ об ошибке написан в вопросе. {«пароль»: [«пароль неверный»]}

Ответ №1:

error != nil Зависит от того, что вы передаете в свою модель и как вы передаете, зависит от кода состояния

  if let httpResponse = response as? HTTPURLResponse{
            switch httpResponse.statusCode {
               case 200 : //handle Root data model
               case 401 : //handle wrong password model
            }
        }
  

Ошибка URLSession отличается . Это когда запрос выполнен с ошибкой и ответа нет. Но вы получили ответ, но вам решать, хороший он или плохой.
Ответ сервера должен быть статическим, если есть изменение, которое вы не заметили, означает, что что-то не так в серверной части.