Validador personalizado y basado en contenido para Alamofire (en Swift)

Sé que puedes agregar un código de estado y validadores de tipo de contenido, pero realmente me encantaría poder escribir mi propio validador en function del contenido del resultado, básicamente quiero asegurarme de que el json que estoy volviendo contiene algunos campos, y que su valor es válido.

La forma en que está actualmente diseñada la aplicación en la que estoy trabajando es que hay una class de server que maneja todas las llamadas api, y el object de respuesta es devuelto a quien lo llamó, para que puedan hacer su lógica / actualización de ui, etc.

Ahora tengo un validador de código de estado en todas las requestes, así que no necesito tenerlo en todos los externos, pero tengo varias apis, que requieren esa lógica de validation personalizada, lo que significa que tengo que agregarlo en todos los lugares que llámalo, Y que no puedo usar esta sorprendente syntax:

switch resp.result { case .Success(let value): print("yay") case .Failure: print("nay") } 

Me encantaría cualquier respuesta / puntero que me ayude a encontrar una solución,
¡Muchas gracias a todos por adelantado! 🙂

Terminé teniendo esta misma pregunta y descubrí lo que quiere hacer es escribir su propio serializador de respuestas y dejar de usar .validate ().

El serializador que estoy usando está muy, muy cerca del JSONResponseSerializer listo para usar, salvo que hago una comprobación de un error.

El único cambio que hago al serializador de stock está dentro de la statement do-catch:

 do { let JSON = try NSJSONSerialization.JSONObjectWithData(validData, options: options) if let responseDict = JSON as? NSDictionary, apiError = NSError.APIErrorFromResponse(responseDict) { return .Failure(apiError) } return .Success(JSON) } catch { return .Failure(error as NSError) } 

APIErrorFromResponse es simplemente un método de extensión en NSError que comtesting el JSON para un dictionary de error y rellena un NSError personalizado de eso.

¡Esperemos que esto apunte en la dirección correcta si aún no ha encontrado una solución!