Bientôt disponible ! Suivez-nous pour être informé dès la sortie
Caractéristiques
Reliure spirale - 17 x 21 cm (Médian)
ISBN : 978-2-409-04702-2
EAN : 9782409047022
Ref. ENI : EIMKOTBACK
Ce support sur le langage de programmation Kotlin et ses frameworks Ktor et Exposed vise à familiariser les développeurs backend avec une stack technologique entièrement basée sur ce langage. Il montre comment Kotlin peut être utilisé pour développer toutes les couches d’une application web moderne et performante. L’auteur commence par une introduction détaillée aux bases du langage Kotlin (variables, fonctions, structures de contrôle) et à sa syntaxe, avant de vous guider à travers les tests...
Ce support sur le langage de programmation Kotlin et ses frameworks Ktor et Exposed vise à familiariser les développeurs backend avec une stack technologique entièrement basée sur ce langage. Il montre comment Kotlin peut être utilisé pour développer toutes les couches d’une application web moderne et performante.
L’auteur commence par une introduction détaillée aux bases du langage Kotlin (variables, fonctions, structures de contrôle) et à sa syntaxe, avant de vous guider à travers les tests et l’utilisation des coroutines, un des principes avancés du langage.
La deuxième partie est entièrement dédiée à la création de services REST avec Ktor, le framework développé par JetBrains pour développer des applications web performantes et robustes.
Ensuite, vous explorez le framework Exposed, également développé par JetBrains, qui facilite la connexion et la gestion des bases de données relationnelles. Vous pourrez ainsi apprendre à manipuler les données efficacement et en toute sécurité.
Enfin, le support aborde des concepts avancés tels que le développement multi-plateforme avec Kotlin Multiplatform et le développement frontend, vous permettant d’étendre vos compétences et de créer des applications complètes et cohérentes.
3.11.2 Personnalisation des getters et des setters
3.11.3 Les constructeurs
3.11.4 Les méthodes
3.11.5 Les classes data
3.11.6 Les classes Enum
3.12 L’héritage
3.12.1 Surcharge des méthodes
3.12.2 Surcharge des propriétés
3.13 Les interfaces
3.14 Les classes abstraites
3.15 Les classes et interfaces scellées
3.16 Les classes imbriquées
3.17 Les extensions
3.17.1 Les fonctions d’extension
3.17.2 Les propriétés d’extension
3.18 La délégation
3.19 L’objet singleton
3.20 Les collections
3.20.1 Les tableaux
3.20.2 Les listes
3.20.3 Les collections de type Map
4. Les coroutines
4.1 Introduction
4.2 Fonctionnement des coroutines
4.2.1 L’installation
4.2.2 Les fonctions suspendues
4.2.3 La création d’une coroutine
4.2.4 Les répartiteurs
5. Tester son code
5.1 Introduction
5.1.1 Installation de Kotest avec Gradle
5.1.2 Installation de Kotest avec Maven
5.1.3 Configuration d’IntelliJ
5.2 Écrire des tests avec Kotest
5.2.1 FunSpec
5.2.2 StringSpec
5.2.3 FreeSpec
5.2.4 AnnotationSpec
5.3 Utiliser la bibliothèque d’assertions
5.4 Simuler les comportements des objets
6. Conclusion
Développement d’API avec Ktor
1. Introduction
1.1 Qu’est-ce que Ktor ?
1.2 Comparaison avec le framework Spring
1.2.1 Le temps de démarrage
1.2.2 L’écosystème
1.2.3 La syntaxe
1.2.4 La performance
1.3 Créer une application serveur en utilisant Ktor
1.3.1 Choisir un moteur HTTP pour le serveur
1.3.2 Ajouter Ktor à un projet Gradle
1.3.3 Ajouter Ktor à un projet Maven
1.3.4 La fonction main de l’application
1.3.5 Le fichier de configuration
1.3.6 Les modules Ktor
1.4 Fonctionnement de Ktor
1.4.1 Architecture basée sur un système de plugins
1.4.2 Installation d’un plugin
2. Les bases de Ktor
2.1 Écrire une API REST
2.1.1 Définir l’API
2.1.2 Récupérer les variables d’un chemin de routage
2.1.3 Récupérer les paramètres de la requête
2.2 La sérialisation des objets
2.2.1 Ajouter le plugin Gradle/Maven de sérialisation
2.2.2 Désérialisation des messages des requêtes HTTP
2.2.3 Sérialisation des messages des réponses HTTP
2.3 Validation des contenus des requêtes
2.3.1 Installation du plugin de validation de requêtes
2.3.2 Configuration du plugin de validation de requêtes
2.4 Contrôler le code HTTP renvoyé lors d’une exception
2.5 Gérer les en-têtes HTTP
2.5.1 Récupérer les en-têtes HTTP d’une requête
2.5.2 Définir des en-têtes HTTP d’une réponse
2.6 Servir du contenu statique
2.6.1 Servir des fichiers depuis le système de fichiers
2.6.2 Servir des ressources depuis le classpath
2.6.3 Exclure des fichiers
2.7 Templates HTML
2.7.1 Générer le code HTML en Kotlin
2.7.2 Créer des composants réutilisables
2.7.3 Utiliser des balises HTML personnalisées
2.7.4 Gérer des templates complexes
2.8 Bien structurer son application
3. Sécuriser son API
3.1 Authentification basique
3.2 Utilisation d’un token JWT
3.3 Intégration avec LDAP
3.4 Authentification OAuth
3.5 Gestion des sessions et des cookies
3.5.1 Installation du plugin de gestion des sessions
3.5.2 Représentation des données d’une session
3.5.3 Passer la session dans un en-tête HTTP
3.5.4 Passer la session dans un cookie
3.5.5 Protéger les données de la session
4. Ktor : documenter son API
4.1 Documentation OpenAPI
4.2 Exposer l’interface OpenAPI
4.3 Exposer l’interface Swagger
5. Tester son API REST
5.1 Configuration de l’environnement de test
5.2 Écriture du test
6. Se connecter à une API REST avec le client HTTP
6.1 Installation et configuration
6.2 Configuration d’un plugin
6.3 Envoyer des requêtes HTTP
7. Utilisation des WebSockets
7.1 Configurer le plugin WebSockets
7.2 Définir un point d’accès WebSocket
7.3 Utiliser les WebSockets côté client
8. Monitoring d’une application Ktor
8.1 Logging
8.2 Intégration avec Micrometer
9. Déploiement de l’application
9.1 Déploiement sous forme d’un Fat-JAR
9.1.1 Génération du Fat-JAR avec Gradle
9.1.2 Génération du Fat-JAR avec Maven
9.2 Déploiement sous forme d’un dossier d’installation
9.3 Déploiement sous forme d’image Docker
9.3.1 Créer l’image Docker en utilisant le plugin Gradle de Ktor
9.3.2 Créer l’image Docker avec un DockerFile
10. Conclusion
Connexion aux bases de données avec Exposed
1. Introduction
2. Comparaison entre Exposed et Hibernate
2.1 Maintenabilité
2.2 Maturité
2.3 Performance
3. Installation et configuration
3.1 Ajout des dépendances
3.2 Configuration de la connexion
3.3 Gestion des transactions
4. Les bases du framework Exposed
4.1 Représentation des tables
4.1.1 Déclarer les tables
4.1.2 Ajouter des contraintes
4.1.3 Définir les index
4.1.4 Définir les relations
4.1.5 Initialiser le schéma
4.2 Utilisation de Flyway
4.2.1 Définir les migrations
4.2.2 Appliquer les migrations
4.3 Exécution des requêtes
4.3.1 Utiliser l’API DAO
4.3.2 Utiliser l’API DSL
5. Gérer les jointures
5.1 Gérer les jointures avec la syntaxe DSL
5.1.1 Les jointures internes
5.1.2 Les jointures à droite
5.1.3 Les jointures à gauche
5.1.4 Les jointures complètes
5.2 Gérer les jointures avec la syntaxe DAO
6. Utilisation des fonctions SQL
7. Tester les requêtes
8. Monitoring des requêtes
8.1 Activation des logs
8.2 Intégration avec Micrometer
9. Conclusion
Aller plus loin avec Kotlin Multiplatform
1. Introduction
2. Structuration de code
2.1 Le plugin Gradle
2.2 Structure du projet
2.3 Gestion des dépendances
2.4 Génération du binaire
2.5 Les avantages de la compilation Kotlin en native
3. Développement frontend avec Kotlin/JS
3.1 Création et configuration d’un projet Kotlin/JS
3.2 Ajouter des dépendances NPM
3.3 Ajouter des feuilles de style CSS
3.4 Utilisation du framework React
3.5 Appeler une API REST
3.6 Déploiement de l’application web
Conclusion
Index
Ghassane LATFI
Diplômé de l’IMT Atlantique, Ghassane LATFI a débuté sa carrière comme développeur Java, avant d’évoluer vers des fonctions de lead technique et d’architecte logiciel. Tout au long de son parcours, il a travaillé avec différents langages de programmation et frameworks. Plus récemment, il s'est tourné vers le langage Kotlin, impressionné par ses capacités et son potentiel, ce qui l'a poussé à l'utiliser comme langage principal dans ses projets. Les avantages de Kotlin en termes de productivité et de qualité du code l’ont motivé à partager ses connaissances à travers ce livre.