Voici la suite de mon précédent tutoriel concernant Alamofire. Cette fois, on attaque la partie « POST ».
Pour cet exemple, j’ai créé une petite application de to-do, dont le source est sur gitLab : https://gitlab.com/camilleBar/MyToDoList
Autant il est relativement simple de trouver des API’s gratuites pour faire du GET, autant trouver des API’s ouvertes pour du POST est compliqué. D’ailleurs, si vous avez des infos là dessus, n’hésitez pas à me les mettre en commentaire ! J’ai cependant trouvé ce site : https://jsonplaceholder.typicode.com/ , avec plus d’infos ici : https://github.com/typicode/jsonplaceholder
Il en découle ceci : les ressources ne sont pas réellement mises à jour sur le serveur, mais celui-ci « fait comme si ». L’application d’exemple n’est donc pas pleinement fonctionnelle (vous ne pourrez pas réellement ajouter ou effacer de to-do), mais le serveur simulera l’action. Tout l’intérêt de l’application se trouve dans les méthodes utilisées pour gérer les différentes actions d’Alamofire.
Allez, entrons dans le vif du sujet !
Mon application comporte donc 2 vues. La première sert à visualiser la liste des taches à faire pour un utilisateur donné :
On peut également, par un glisser latéral, supprimer des taches :
La seconde vue sert à ajouter une tache :
Je ne m’étendrais pas sur la création des vues et la gestion des tableViews, cela n’est pas le sujet de ce tutoriel.
Donc, pour pouvoir travailler avec nos taches, il faut pouvoir les récupérer. Pour cela, je crée un objet « Todo » :
Ensuite, on prépare les méthodes d’accès aux services (classe ForecastServices).
Pour le GET :
Rien de particulier, il s’agit d’une simple modification de la méthode utilisée dans le précédent tutoriel.
Pour le POST :
Le principal changement est de préciser à Alamofire que nous désirons travailler en POST (method: .post).
Pour l’effacement :
Voilà, il ne reste plus qu’à appeler ces fonctions dans leur viewcontrollers respectifs :
Récupération des to-do’s dans ToDoViewController :
Suppression d’un to-do dans ce même viewcontroller :
Et enfin ajout d’un to-do dans AddToDoViewController :