• Aide
  • Eurêkoi Eurêkoi

Livre

Kotlin : développement backend d'applications web avec Ktor et Exposed

Résumé

Présentation du langage de programmation Kotlin et de ses frameworks Ktor et Exposed. L'auteur montre notamment comment ce langage peut être utilisé à travers toutes les couches d'une application web moderne. Il expose les bases, la syntaxe et les tests puis détaille des concepts plus avancés, avant de proposer des exercices d'application dont le code source est téléchargeable.


  • Éditeur(s)
  • Date
    • C 2024
  • Notes
    • La couv. porte en plus : "En téléchargement : code source des exemples" ; "Informatique technique"
    • La 4e de couv. indique : Sur www.ecitions-eni.fr : le code source des exemples du livre
    • Contient un "flashcode" permettant d'accéder à un contenu via Internet
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (278 p.) : ill. ; 21 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-409-04700-8
  • Indice
  • Quatrième de couverture
    • Kotlin

      Développement backend d'applications web avec Ktor et Exposed

      Ce livre 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 livre 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.


  • Tables des matières
      • Kotlin

      • Développement backend d'applications web avec Ktor et Exposed

      • Ghassane LATFI

      • Expert IT

      • Avant-propos
      • 1. À propos de Kotlin 9
      • 2. Audience de cet ouvrage 10
      • 3. Organisation de l'ouvrage 10
      • Chapitre 1
      • Présentation du langage Kotlin
      • 1. Pourquoi Kotlin ? 11
      • 2. Outils de développement 13
      • 2.1 Environnement de développement intégré 13
      • 2.2 Compilateur Kotlin 13
      • 2.3 Maven 14
      • 2.4 Gradle 17
      • 2.5 SonarQube 18
      • 2.6 Ktlint 18
      • 3. Les bases de Kotlin 20
      • 3.1 Programme minimal 20
      • 3.2 Les commentaires 21
      • 3.3 Les variables 22
      • 3.4 Les types nullable et non-nullable 23
      • 3.5 Conversion entre deux types (cast) 24
      • 3.6 Les chaînes de caractères 25
      • 3.7 Les fonctions 26
      • 3.7.1 Déclarer une fonction 26
      • 3.7.2 Appeler une fonction 28
      • 3.7.3 Les paramètres nommés 28
      • 3.7.4 Les paramètres avec valeurs par défaut 28
      • 3.7.5 Surcharge des fonctions 29
      • 3.7.6 Les fonctions d'ordre supérieur 30
      • 3.7.7 Les fonctions anonymes 32
      • 3.7.8 Les lambdas 33
      • 3.8 Les structures de contrôle 34
      • 3.8.1 Les conditions 34
      • 3.8.2 Les boucles 37
      • 3.9 Les packages 40
      • 3.10 Les indicateurs de visibilité 41
      • 3.11 Les classes 42
      • 3.11.1 Les propriétés 42
      • 3.11.2 Personnalisation des getters et des setters 43
      • 3.11.3 Les constructeurs 46
      • 3.11.4 Les méthodes 52
      • 3.11.5 Les classes data 53
      • 3.11.6 Les classes Enum 54
      • 3.12 L'héritage 55
      • 3.12.1 Surcharge des méthodes 56
      • 3.12.2 Surcharge des propriétés 58
      • 3.13 Les interfaces 59
      • 3.14 Les classes abstraites 61
      • 3.15 Les classes et interfaces scellées 62
      • 3.16 Les classes imbriquées 64
      • 3.17 Les extensions 65
      • 3.17.1 Les fonctions d'extension 65
      • 3.17.2 Les propriétés d'extension 67
      • 3.18 La délégation 68
      • 3.19 L'objet singleton 70
      • 3.20 Les collections 71
      • 3.20.1 Les tableaux 71
      • 3.20.2 Les listes 74
      • 3.20.3 Les collections de type Map 77
      • 4. Les coroutines 81
      • 4.1 Introduction 81
      • 4.2 Fonctionnement des coroutines 82
      • 4.2.1 L'installation 82
      • 4.2.2 Les fonctions suspendues 83
      • 4.2.3 La création d'une coroutine 84
      • 4.2.4 Les répartiteurs 86
      • 5. Tester son code 89
      • 5.1 Introduction 89
      • 5.1.1 Installation de Kotest avec Gradle 89
      • 5.1.2 Installation de Kotest avec Maven 90
      • 5.1.3 Configuration d'intellij 91
      • 5.2 Écrire des tests avec Kotest 92
      • 5.2.1 FunSpec 92
      • 5.2.2 StringSpec 94
      • 5.2.3 FreeSpec 95
      • 5.2.4 AnnotationSpec 96
      • 5.3 Utiliser la bibliothèque d'assertions 97
      • 5.4 Simuler les comportements des objets 99
      • 6. Conclusion 102
      • Chapitre 2
      • Développement d'API avec Ktor
      • 1. Introduction 103
      • 1.1 Qu'est-ce que Ktor ? 103
      • 1.2 Comparaison avec le framework Spring 104
      • 1.2.1 Le temps de démarrage 104
      • 1.2.2 L'écosystème 105
      • 1.2.3 La syntaxe 106
      • 1.2.4 La performance 106
      • 1.3 Créer une application serveur en utilisant Ktor 106
      • 1.3.1 Choisir un moteur HTTP pour le serveur 106
      • 1.3.2 Ajouter Ktor à un projet Gradle 107
      • 1.3.3 Ajouter Ktor à un projet Maven 108
      • 1.3.4 La fonction main de l'application 109
      • 1.3.5 Le fichier de configuration 110
      • 1.3.6 Les modules Ktor 111
      • 1.4 Fonctionnement de Ktor 112
      • 1.4.1 Architecture basée sur un système de plugins 112
      • 1.4.2 Installation d'un plugin 113
      • 2. Les bases de Ktor 115
      • 2.1 Écrire une API REST 115
      • 2.1.1 Définir l'API 115
      • 2.1.2 Récupérer les variables d'un chemin de routage 118
      • 2.1.3 Récupérer les paramètres de la requête 119
      • 2.2 La sérialisation des objets 120
      • 2.2.1 Ajouter le plugin Gradle/Maven de sérialisation 121
      • 2.2.2 Désérialisation des messages des requêtes HTTP 122
      • 2.2.3 Sérialisation des messages des réponses HTTP 123
      • 2.3 Validation des contenus des requêtes 125
      • 2.3.1 Installation du plugin de validation de requêtes 125
      • 2.3.2 Configuration du plugin de validation de requêtes 125
      • 2.4 Contrôler le code HTTP renvoyé lors d'une exception 126
      • 2.5 Gérer les en-têtes HTTP 127
      • 2.5.1 Récupérer les en-têtes HTTP d'une requête 127
      • 2.5.2 Définir des en-têtes HTTP d'une réponse 128
      • 2.6 Servir du contenu statique 129
      • 2.6.1 Servir des fichiers depuis le système de fichiers 129
      • 2.6.2 Servir des ressources depuis le classpath 130
      • 2.6.3 Exclure des fichiers 132
      • 2.7 Templates HTML 133
      • 2.7.1 Générer le code HTML en Kotlin 134
      • 2.7.2 Créer des composants réutilisables 137
      • 2.7.3 Utiliser des balises HTML personnalisées 140
      • 2.7.4 Gérer des templates complexes 141
      • 2.8 Bien structurer son application 143
      • 3. Sécuriser son API 145
      • 3.1 Authentification basique 145
      • 3.2 Utilisation d'un token JWT 149
      • 3.3 Intégration avec LDAP 153
      • 3.4 Authentification OAuth 155
      • 3.5 Gestion des sessions et des cookies 158
      • 3.5.1 Installation du plugin de gestion des sessions 158
      • 3.5.2 Représentation des données d'une session 159
      • 3.5.3 Passer la session dans un en-tête HTTP 159
      • 3.5.4 Passer la session dans un cookie 160
      • 3.5.5 Protéger les données de la session 162
      • 4. Ktor : documenter son API 163
      • 4.1 Documentation OpenAPI 163
      • 4.2 Exposer l'interface OpenAPI 165
      • 4.3 Exposer l'interface Swagger 166
      • 5. Tester son API REST 168
      • 5.1 Configuration de l'environnement de test 168
      • 5.2 Ecriture du test 169
      • 6. Se connecter à une API REST avec le client HTTP 174
      • 6.1 Installation et configuration 175
      • 6.2 Configuration d'un plugin 176
      • 6.3 Envoyer des requêtes HTTP 178
      • 7. Utilisation des WebSockets 181
      • 7.1 Configurer le plugin WebSockets 182
      • 7.2 Définir un point d'accès WebSocket 183
      • 7.3 Utiliser les WebSockets côté client 185
      • 8. Monitoring d'une application Ktor 187
      • 8.1 Logging 188
      • 8.2 Intégration avec Micrometer 191
      • 9. Déploiement de l'application 195
      • 9.1 Déploiement sous forme d'un Fat-JAR 195
      • 9.1.1 Génération du Fat-JAR avec Gradle 195
      • 9.1.2 Génération du Fat-JAR avec Maven 196
      • 9.2 Déploiement spus forme d'un dossier d'installation 197
      • 9.3 Déploiement sous forme d'image Docker 197
      • 9.3.1 Créer l'image Docker en utilisant le plugin Gradle de Ktor 197
      • 9.3.2 Créer l'image Docker avec un DockerFile 198
      • 10. Conclusion 200
      • Chapitre 3
      • Connexion aux bases de données avec Exposed
      • 1. Introduction 201
      • 2. Comparaison entre Exposed et Hibernate 202
      • 2.1 Maintenabilité 202
      • 2.2 Maturité 203
      • 2.3 Performance 203
      • 3. Installation et configuration 204
      • 3.1 Ajout des dépendances 204
      • 3.2 Configuration de la connexion 205
      • 3.3 Gestion des transactions 207
      • 4. Les bases du framework Exposed 209
      • 4.1 Représentation des tables 209
      • 4.1.1 Déclarer les tables 209
      • 4.1.2 Ajouter des contraintes 212
      • 4.1.3 Définir les index 213
      • 4.1.4 Définir les relations 214
      • 4.1.5 Initialiser le schéma 216
      • 4.2 Utilisation de Flyway 217
      • 4.2.1 Définir les migrations 218
      • 4.2.2 Appliquer les migrations 220
      • 4.3 Exécution des requêtes 221
      • 4.3.1 Utiliser l'API DAO 221
      • 4.3.2 Utiliser l'API DSL 227
      • 5. Gérer les jointures 230
      • 5.1 Gérer les jointures avec la syntaxe DSL 232
      • 5.1.1 Les jointures internes 232
      • 5.1.2 Les jointures à droite 234
      • 5.1.3 Les jointures à gauche 236
      • 5.1.4 Les jointures complètes 238
      • 5.2 Gérer les jointures avec la syntaxe DAO 239
      • 6. Utilisation des fonctions SQL 240
      • 7. Tester les requêtes 243
      • 8. Monitoring des requêtes 246
      • 8.1 Activation des logs 246
      • 8.2 Intégration avec Micrometer 247
      • 9. Conclusion 249
      • Chapitre 4
      • Aller plus loin avec Kotlin Multiplatform
      • 1. Introduction 251
      • 2. Structuration de code 253
      • 2.1 Le plugin Gradle 253
      • 2.2 Structure du projet 254
      • 2.3 Gestion des dépendances 256
      • 2.4 Génération du binaire 257
      • 2.5 Les avantages de la compilation Kotlin en native 257
      • 3. Développement frontend avec Kotlin/JS 258
      • 3.1 Création et configuration d'un projet Kotlin/JS 258
      • 3.2 Ajouter des dépendances NPM 261
      • 3.3 Ajouter des feuilles de style CSS 262
      • 3.4 Utilisation du framework React 263
      • 3.5 Appeler une API REST 266
      • 3.6 Déploiement de l'application web 268
      • Conclusion 269
      • Index 271

  • Origine de la notice:
    • BPI
  • Disponible - 681.25 LAF

    Etage 3 - Informatique - Informatique