Accesso ai servizi Web

Nella nostra applicazione, potremmo aver bisogno di connetterci all'API e recuperare i dati da quell'API e utilizzarli nella nostra applicazione.

In primo luogo, abbiamo bisogno dell'URL, che ci fornirà i dati.

api.openweathermap.org/data/2.5/forecast?id=524901&APPID=1111111111

Dopodiché, dobbiamo aggiungere un'eccezione di sicurezza del livello di trasporto per consentire alla nostra applicazione di comunicare con il servizio Web, se il servizio non è https. Apporteremo queste modifiche nel fileinfo.plist file.

Infine, creeremo una URLSession per creare una richiesta di rete.

let urlString = URL(string: "your URL")  // Making the URL  
if let url = urlString {   
   let task = URLSession.shared.dataTask(with: url) { 
      (data, response, error) in // Creating the URL Session. 
      if error != nil {  
         // Checking if error exist. 
         print(error) 
      } else { 
         if let usableData = data { 
            // Checking if data exist. 
            print(usableData)   
            // printing Data. 
         } 
      } 
   }
}	
task.resume()

Ecco come puoi utilizzare i servizi Web nella tua applicazione utilizzando sessioni URL.

Alamofire

Alamofire è una libreria di rete HTTP scritta in swift. Può essere utilizzato per effettuare richieste URL, inserire dati, ricevere dati, caricare file, dati, autenticazione, convalida, ecc.

Per installare Aalmofire, puoi andare su Alamofire ufficialmente su GitHub e leggere la loro guida all'installazione

Fare una richiesta in Alamofire

Per fare una richiesta in Alamofire, dovremmo usare il seguente comando.

Import Alamofire 
Alamofire.request("url");

Gestione delle risposte

Il seguente comando viene utilizzato per la gestione della risposta.

Alamofire.request("url").responseJSON {  
   response in      
   print(response.request)   
   // original URL request     
   print(response.response)  
   // HTTP URL response      
   print(response.data)      
   // server data      
   print(response.result)    
   // result of response serialization       
   if let JSON = response.result.value {          
      print("JSON: \(JSON)")   
   } 
}

Convalida della risposta

Il seguente comando viene utilizzato per la gestione della risposta.

Alamofire.request("https://httpbin.org/get").validate().responseJSON {  
   response in      
   switch response.result {      
      case .success:         
      print("Validation Successful")      
      case .failure(let error):      
      print(error)      
   } 
}

Queste sono le basi per effettuare richieste URL, utilizzando Sessioni URL e Alamofire. Per Alamofire più avanzato, visita la documentazione di Alamofire e puoi leggerlo in dettaglio.