Hacer llamada GET a un API REST con Swift
Anuncio:
¡Hola! Hoy vamos a ver cómo hacer una petición GET a un API REST con el nuevo lenguaje de programación para dispositivos iOS, Swift.
Bien, en este caso, para hacer la prueba vamos a crear un nuevo PlayGround, en el cual insertaremos este sencillo código:
import Foundation
import XCPlayground
import UIKit
func httpGet(url: String, callback: (String, String?) -> Void){
var request = NSMutableURLRequest(URL: NSURL(string: url)!)
var session = NSURLSession.sharedSession()
var task = session.dataTaskWithRequest(request){
(data, response, error) -> Void in
if error != nil {
callback("", error.localizedDescription)
}else{
var result = NSString(data: data, encoding: NSASCIIStringEncoding)!
callback(result, nil)
}
}
task.resume()
}
func callbackGet (a: String, b: String?) -> Void{
println(a)
}
httpGet("http://miURL.com", callbackGet)
XCPSetExecutionShouldContinueIndefinitely(continueIndefinitely: true)
Como se puede observar, tenemos una función que es la encargada de realizar la petición, ‘httpGet’, a la que pasamos un string, que será nuestra url, y una función que será llamada si el proceso de obtención de los datos tiene éxito.
A su vez, esta última función, simplemente imprimirá por pantalla el resultado obtenido.
Expliquemos un poco más el funcionamiento:
– La clase encargada de realizar la petición será ‘NSMutableURLRequest’
– Como complemento, necesitamos un objeto de tipo ‘NSURLSession’ que, como se indica en la descripción, provee un API para descargar contenido vía HTTP. A continuación se hace una llamada a ‘sharedSession’, con esto obtenemos un objeto Singleton de sesión, hay más tipos de ‘NSURLSession’, puedes verlos en el enlace anterior.
– Después llamamos al método ‘dataTaskWithRequest’ de la sesión, que se encarga de crear una petición a partir de la URL.
– A continuación, llamamos a la función encargada de imprimir el resultado por pantalla tanto si hubo errores como si no, para después ejecutar la tarea creada con ‘task.resume()’.
– Por último, la última línea es necesaria para que nuestro playground ejecute la petición, se ejecutará indefinidamente, así que cuando comprobemos el funcionamiento, podríamos comentarla.
Puedes encontrar el código completo sobre cómo hacer una llamada GET a un API REST en Swift en GitHub
Espero que te haya resultado útil.
HackSaludos!