À vous de jouer !
Maintenant que Kotlin n'a plus de secret pour vous, OpenClassrooms vous confie la lourde tâche de migrer toute son infrastructure serveur... en Kotlin ! ^^
La première étape de cette migration sera la réalisation d'une application web de démonstration afin que le CTO d'OpenClassrooms puisse juger de la faisabilité du futur projet. Ainsi, vous allez devoir créer une API en Kotlin qui renverra les informations d'un cours au format JSON.
D'ailleurs, JetBrains, avertie de cette migration exceptionnelle, a spécialement conçu pour cette occasion une librairie... permettant de créer une application web en Kotlin : Ktor ! :D
Ainsi, votre mission est de créer une application web, OCWebServer, qui devra :
Fonctionner en local et répondre à l'adresse http://127.0.0.1:8080/.
Implémenter la navigation suivante :
/
: Afficher le message : "Welcome to OpenClassrooms brand new server !"./course/top
: Afficher une réponse JSON correspondant au meilleur cours sorti par OpenClassrooms./course/{id}
: Afficher les informations d'un cours. Pour la démo, vous devrez gérer uniquement les cours possédant les identifiants 1, 2 et 3. Vous renverrez un message d'erreur si d'autres identifiants sont renseignés.
Un cours est composé d'un identifiant, d'un titre, d'un niveau de complexité, et d'un paramètre indiquant si le cours est actif ou non. Libre à vous de décider du contenu de ces cours. :)
Attention, toutefois, vous devrez respecter les règles suivantes dans votre code :
Utilisez au moins une fois une
extension
.Créez au moins une classe
data
.
Voici un aperçu du résultat attendu :
Vous utiliserez également l'IDE IntelliJ (la version gratuite) afin de réaliser ce projet.
Bon courage !
Vérifiez votre travail
Utiliser des lambdas en Kotlin
Une ou plusieurs lambdas ont été utilisées dans le programme (implicitement validées dès lors que l'étudiant utilise Ktor).
Implémenter des extensions en Kotlin
Une ou plusieurs extensions ont été utilisées dans le programme.
Maîtriser la conception d’une classe en Kotlin
Une ou plusieurs classes data ont été créées dans le programme.