2. LiveCoding : Hello RESTFful World
● Objectif : Première application réseau
○
○
●
Un premier écran avec un champ de texte pour saisir le prénom et un
bouton pour l'envoyer vers le serveur
Suite à la réponse du serveur, un deuxième écran qui affiche cette
réponse
Concepts à voir
○
Utilisation des capacités réseau du terminal
○
Permissions dans l'AndroidManifest.xml
○
Envoi et réception de requêtes/réponses REST
Avec le soutien de :
3. REST, REST... c'est quoi déjà REST ?
REST (REpresentational State Transfer)
● Une manière de construire une application pour le web
○
○
Pas un protocole, pas un format
Le style architectural original du Web.
● Quelques principes simples :
○
○
○
○
Des URI qui permettent de nommer et identifier les ressources
Le protocole HTTP qui fournit les méthodes pour accéder, modifier,
créer ou effacer des contenus dans les ressources
■ Méthodes GET, POST, PUT et DELETE, essentiellement
Pas de session, pas d'état, chaque opération est auto-suffisante
Des formats de transfert standard
■ HTML, XML et JSON principalement.
Avec le soutien de :
4. Et JSON ?
JSON (JavaScript Object Notation)
● Format de données textuel et générique
○
dérivé de la notation des objets du langage JavaScript
○
Bibliothèques très optimisés dans les autres langages
● Plus simple, léger et facile à traiter que le XML
● Évaluation native en JavaScript
{
"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{ "value": "New", "onclick": "CreateNewDoc()" },
{ "value": "Open", "onclick": "OpenDoc()" },
{ "value": "Close", "onclick": "CloseDoc()" }
]
}
}
}
Avec le soutien de :
5. LiveCoding : Hello RESTFful World
● URI à appeler
http://lostinbrittany.org/java/AndroidBootcampServer/rest/helloservice/echo?echo=PRENOM
○
avec à la place de PRENOM le prénom saisi dans le champ de texte
● Méthode HTTP à utiliser : GET
○
On cherche à obtenir une réponse du serveur (GET), pas à modifier du
contenu (POST), le créer (PUT) ou effacer (DELETE)
● On peut partir d'une copie du projet précédent
Avec le soutien de :
6. On part du dernier step du précédant
Avec le soutien de :
7. step-6 - Ajoutons une AsyncTask simple
● onClick() crée une AsyncTask
○
qui ne va faire qu’attendre
○
et lancer l’Intent à la fin
Avec le soutien de :
8. step-7 - Et les permissions qui vont bien...
● Dans le Manifeste
Avec le soutien de :