Créer un service qui reçoit un texte en paramètre de BODY et en retourne la version leet code.
Serveur
- Réutiliser votre fonction de l'exercice 1.2 en l'isolant dans le fichier
leet.rb
que vous pourrez ensuite inclure dans votre serveur.
- Inverser la case, les minuscules deviennent des majuscule et inversement
- Ajouter certaines règles de substitution selon votre inspiration du moment, par exemple: les 'e' deviennent des '3', les 't' des '+', les 'a' des '@', etc.
- Valider que le texte reçu n'est pas une string vide ou seulement des espaces, sinon afficher un message d'erreur
POST /
Je m'appelle James!
===
j3 M'@PP3LL3 j@M3$!
~~~ Message vide
Fournir un message!
Client
- Créer un client qui permet à l'utilisateur de saisir à la console le message à envoyer et lui affiche le résultat à la console
- Le client demande un message en boucle jusqu'à ce que le message saisit soit vide
Message: Je m'appelle James!
j3 M'@PP3LL3 j@M3$!
Message: Allo
@LL0
Message:
Créer un service qui calcule et retourne la somme des nombres contenus dans un tableau reçu en paramètre
- Expérimentez avec différents mécanismes pour l'envoi d'un tableau en paramètre et créer une ROUTE par mécanisme
- Retourner le résultat au format JSON en indiquant 3 valeurs
- input : la valeur brute reçue par le serveur
- filtered : le input traité pour ne conserver que les nombres, ou tableau si aucuns nombres
- sum : la somme des nombres dans filtered, que retourner si aucun nombre?
- Réutiliser vos fonctions des exercices 1.2(
Un petit plus
et Que des nombres
) en les isolant dans un fichier que vous pourrez ensuite inclure dans votre serveur.
- Créer ensuite une application client qui permet à l'utilisateur de saisir le tableau à la console en réutilisant le code de input.rb
du même exercice, et afficher le résultat
GET /query?___
===
{
"input": ___,
"filtered": [___]
"sum": ___
}
POST /body
___
===
{
"input": ___,
"filtered": [___]
"sum": ___
}
POST /json
___
===
{
"input": ___,
"filtered": [___]
"sum": ___
}
Développer une application serveur permettant de générer un personnage fictif de jeu de rôle.
- Créer une route
GET /
qui retourne ce fichier HTML
- Si votre serveur respecte le format de requête et réponse, l'application web pourra l'utiliser
- Utiliser un navigateur web pour utiliser la page HTML via votre serveur
- Créer une route
POST /
qui reçoit les informations du formulaire: prénom, nom, date de naissance
- La page HTML utilise l'encodage
www-form-urlencoded
donc les valeurs sont disponibles dans Sinatra via la variable params
dans la structure clé-valeur
- Assurez-vous que toutes les données sont présentes, non-vides et que la date de naissance est formatée correctement YYYY-MM-DD avec des nombres
- Utiliser le prénom, nom et les sections(année, mois, jour) de la date de naissance pour calculer les caractéristiques du personnage en important la fonction
generator
du fichier generator.rb
- Les calculs qui donnent un nombre pourront être ajustés pour correspondre à un des choix des listes suivantes
types = ["mage", "knight", "rogue", "barbarian", "monk", "druid", "ranger", "paladin"]
races = ["dwarf", "elf", "human", "orc", "fairy"]
Affichage du client web
GET /
===
___Fichier charactor.html___
Génération du personnage
POST /
firstname=___&lastname=___&date_of_birth=___
===
{ "type" : "___", "name" : "___", "race" : "___" }
~~~ Si erreur
"Message d'erreur..."
Créer un service web qui permet de récolter les commentaires laissés par les visiteurs d'un lieu/événement
- Les messages sont enregistrés dans un fichier par le serveur
- Vous devez définir le format utilisé pour enregistrer les données dans le fichier et la communication avec le client
- Le fichier contient l'auteur et le message de chaque item publié
- Le serveur offre 2 fonctionnalités
- Liste des messages, du plus ancien au plus récent
- Publication d'un message
- Le serveur reçoit le nom et le message de l'utilisateur
- Valider que les données ne sont pas vides et retourner
""
si l'ajout fonctionne, sinon retourner un message d'erreur
Serveur
Liste
GET /
===
___LES MESSAGES___
Publication
POST /
___MESSAGE___
===
""
~~~ Nom ou message vide
___"Erreur ..."___
- Programmer un client qui exploite le serveur
- Le client affiche la liste des messages existants et demande un message et le nom de l'auteur
- Le client boucle jusqu'à ce qu'aucun message ne soit saisit
Client
Le livre d'or
=-=-=-=-=-=-=
Alice: First!!11!!1
Bob: Bravo!
Eve: J'ai adoré, à refaire!
...
Votre message: Bel endroit :)
Votre nom: James
=-=-=-=-=-=-=
Alice: First!!11!!1
Bob: Bravo!
Eve: J'ai adoré, à refaire!
...
James: Bel endroit :)
Votre message: allo
Votre nom:
Fournir un nom!
Votre message:
Créer un serveur qui permet de récupérer les blagues de l'API Dad Jokes
- Votre serveur devient donc lui-même un client pour accéder à l'API Dad Jokes
- La documentation de l'API indique de préciser le type de données attendu via un header, repérer dans la documentation de Faraday comment spécifier le header
{"Accept" => "application/json"}
- Votre serveur doit extraire seulement le texte de la blague reçue de l'API
- Programmer ensuite un client en console qui affiche en boucle des blagues toutes les 30 secondes
- Pour un affichage plus propre, l'appel
system("clear")
permet d'effacer la console
- Pour intégrer le délai, la fonction sleep permet d'attendre selon une durée passée en paramètre
- [DÉFI] Faire le délai d'une durée variable, qui dépend du nombre de mots de la blague(1 seconde par mot) ET ajouter une progression du délai(compteurs, barre de progression, etc)
GET /
===
Le texte de la blague
client
Le texte de la blague
....