Revenir

Entre ton email pour recevoir le guide complet pour apprendre Swift peu importe ton niveau

Comment faire des requêtes API avec Alamofire dans Swift

Si votre application fait beaucoup d’appels d’API, vous devriez probablement utiliser Alamofire.

Cela vous simplifiera la vie et rendra votre code bien plus lisible.

Mais si vous n’avez que quelques appels d’API, vous ne devriez pas ajouter une librairie pour ça à votre application car URLSession fonctionne très bien.

Si vous ne savez pas comment utiliser URLSession ou si vous voulez en savoir plus à ce sujet, je vous recommande de lire mon article à ce sujet /posts/api-calls-basics-swift/.

Installation d’Alamofire

Il n’y a absolument aucune difficulté ici, c’est une installation normale avec CocoaPods.

Si vous ne l’avez jamais fait avant, laissez-vous guider.

Voici les étapes pour l’installer si vous ne savez pas comment ajouter un Pod à votre projet :

  1. Ouvrez un Terminal et déplacez-vous dans le dossier de votre projet en utilisant la commande cd suivie du chemin de votre dossier contenant votre application.

  2. Ensuite, tapez pod init (si votre terminal vous dit que la commande pod n’existe pas allez sur cocoapods.org pour voir comment l’installer)

  3. Un fichier appelé “Podfile” devrait apparaître dans votre dossier de projet, ouvrez-le.

  4. Dans la ligne avant celle où il y a écrit end, ajoutez votre pod en écrivant pod 'Alamofire' et sauvegardez le fichier.

  5. Retournez à votre terminal et lancez pod install

  6. Ensuite, vous verrez un autre fichier dans votre dossier de projet avec l’extension xcworkspace. Ouvrez-le et ensuite, pour le reste du projet, codez dans ce fichier.

Une simple requête GET

Voici un exemple d’une simple requête GET avec une API aléatoire :

Requête GET avec Alamofire en Swift

D’abord, nous créons une requête en utilisant Alamofire.

Par défaut, c’est une requête GET sans headers. C’est exactement ce dont nous avons besoin ici, donc nous ne le spécifions pas.

Vous pouvez ajouter un paramètre appelé method qui est une énumération donc vous passerez qui peut prendre les valeurs : .get, .post, .put ou .delete.

Comme vous le voyez, c’est une syntaxe très lisible.

Ensuite, j’exécute une closure dès que j’obtiens une réponse sous forme de JSON.

J’aurais aussi pu utiliser responseString ou responseData.

La différence avec responseJSON est assez explicite : la première renvoie les données sous forme de String, la seconde sous forme d’objet Data que vous pouvez décoder pour les stocker dans une structure et la dernière renvoie un objet que vous pouvez convertir en un dictionnaire de String et Any pour obtenir différents types de valeurs.

Ensuite je vérifie si la réponse est un succès ou un échec et je décode les données dans un dictionnaire.

Requêtes POST

Comme vous le savez peut-être, les requêtes POST sont utilisées pour envoyer des données à l’API.

Voici comment faire avec Alamofire :

Requête POST avec Alamofire en Swift

Encore une fois, la syntaxe est extrêmement lisible.

Tout d’abord, nous créons notre dictionnaire qui contient les données que nous allons envoyer à l’API.

Ensuite, nous créons la requête POST et on envoie notre dictionnaire comme paramètres de la requête et l’encodage qui est l’encodage JSON par défaut (ce paramètre peut ne pas être spécifié).

Après ça, nous recevons la réponse du serveur et nous vérifions si tout a fonctionné correctement et on gère les erreurs.

Comme vous le voyez, Alamofire a une syntaxe extrêmement simple et tous les autres types de requêtes sont aussi simples que cela.

Par exemple, vous pouvez avoir besoin d’envoyer une requête DELETE.

Ça fonctionne exactement comme une requête GET, sauf que le paramètre method vaudra .delete (évidemment).

Vous pouvez aussi avoir besoin de créer des requêtes PUT pour mettre à jour les données de l’API :

C’est comme une requête POST mais le paramètre method vaudra .put (évidemment).

Conclusion

Comme je l’ai dit dans l’article sur URLSession, Alamofire est génial et simplifie beaucoup votre code mais je ne vous recommande pas de l’utiliser dans tous les projets qui intègrent une API.

URLSession est plus que suffisant si vous n’avez que quelques requêtes simples.

C’est également très facile à utiliser, alors ne vous dites pas que chaque fois que vous intégrez une API, vous avez besoin d’Alamofire.

Vous devez réfléchir aux avantages et aux inconvénients en fonction des exigences de votre projet.

J’espère que cet article vous a été utile !