Échange de données 1

Multiplicator

Implémenter un client Ruby en console pour exploiter les fonctionnalités du service web Multiplicator

  • Le programme demande à l'utilisateur le nombre
  • La requête est traitée
  • Le résultat est formatté sous forme de liste ET affiché en version brute via Pretty JSON

API

http
GET /?number=...X... HTTP/1.1

===

[
{
"multiplicand": 1,
"multiplier": X,
"product": 1X
},
{
"multiplicand": 2,
"multiplier": X,
"product": 2X
},
{
"multiplicand": 3,
"multiplier": X,
"product": 3X
},
...,
{
"multiplicand": X,
"multiplier": X,
"product": XX
}
]

~~~ Si pas entier, > 0

Fournir un entier supérieur à 0!

Exemples d'exécution

Nombre:

Fournir un entier positif!
Nombre: 4

1 * 4 = 4
2 * 4 = 8
3 * 4 = 12
4 * 4 = 16

Brut
----
[
{
"multiplicand": 1,
"multiplier": 4,
"product": 4
},
{
"multiplicand": 2,
"multiplier": 4,
"product": 8
},
{
"multiplicand": 3,
"multiplier": 4,
"product": 12
},
{
"multiplicand": 4,
"multiplier": 4,
"product": 16
},
]

Th3 L33+0R

Implémenter un client Ruby en console permettant de communiquer avec le service Leet pour transformer en dialecte leet un message.

  • Permettre à l'utilisateur de saisir le message à envoyer
    • Demander en boucle, CTRL-C pour fermer le programme
  • Afficher le résultat à la console

API

http
POST / HTTP/1.1

...message...

===

...message leet...

~~~ Si pas de message

Fournir un message!

Exemples d'exécution

Message: Je m'appelle James!

j3 M'@PP3LL3 j@M3$!

Message: Allo

@LL0

Charactor Generator

Développer une application console permettant de générer un personnage fictif de jeu de rôle via le service Charactor Generator

  • Fournir les données selon le format Content-Type: www-form-urlencoded
    • Toutes les données sont requises, non-vides et la date de naissance est formatée YYYY-MM-DD
    • Saisir à la console le prénom, le nom et la date de naissance qui sont utilisées pour calculer les caractéristiques du personnage

API

http
POST / HTTP/1.1

firstname=...&lastname=...&date_of_birth=...

===

{ "type" : "...", "name" : "...", "race" : "..." }

~~~ Si erreur

"Message d'erreur..."

Exemple d'exécution

Prenom: James
Nom: Hoffman
Date de naissance: 1980-01-02

Bonjour grandiose 'semaj namffoh', 'monk' des 'dwarf'!

Additionator

Exploiter le service Additionator via un application console pour traiter un tableau et calculer la somme des nombres qu'il contient

  • Permettre à l'utilisateur de saisir le tableau à la console en réutilisant le code de input.rb et afficher le résultat

API

http
GET /query?inputs[]=...x...&inputs[]=...y...&inputs[]=...z...&inputs[]=... HTTP/1.1

===

{
"input": "...",
"filtered": [...]
"sum": ...
}
http
POST /body HTTP/1.1

...x...
...y...
...z...
...

===

{
"input": "...",
"filtered": [...]
"sum": ...
}
http
POST /json HTTP/1.1

...

===

{
"input": "...",
"filtered": [...]
"sum": ...
}

Exemple d'exécution

Valeur? a
Valeur? 1
Valeur? -2
Valeur? 3.14159265
Valeur? coucou
Valeur?

Données envoyées
a,1,-2,3.14159265,coucou
Données traitées
1,-2,3.14159265
Somme
2.14159265

Joke Interceptor

Créer un client console qui récupère les blagues de 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
  • Extraire seulement le texte de la blague reçue de l'API

[EXTRA]

  • Afficher 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
    • 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)

API

html

GET /
Accept: application/json

===

{
"id": "...",
"joke": "...",
"status": 200
}

Exemple d'exécution

Ceci est une blague...