0Pricing
Kotlin Academy · Leçon

Configuration d’un projet Ktor : embeddedServer et modules d’application

Initialisez une application Ktor, configurez Netty et définissez les modules de l’application.

Configuration d’un projet Ktor : embeddedServer et modules d’application est une leçon Kotlin Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Kotlin Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kotlin Academy comprend 4 leçons au total.

Qu’est-ce que Ktor ?

Ktor est le cadre logiciel Kotlin asynchrone de JetBrains pour créer des serveurs et des clients. Il privilégie les coroutines, repose sur des modules d’extension et n’utilise aucune magie : chaque fonctionnalité nécessaire doit être installée explicitement. Les applications Ktor sont de simples programmes Kotlin — aucun conteneur DI n’est nécessaire.

Ajout des dépendances Ktor

Ajoutez le moteur de serveur principal (Netty est le plus courant) ainsi que la bibliothèque serveur Ktor principale à votre build.gradle.kts :

dependencies {
    implementation("io.ktor:ktor-server-core:2.3.12")
    implementation("io.ktor:ktor-server-netty:2.3.12")
    implementation("ch.qos.logback:logback-classic:1.5.6") // logging
}

embeddedServer : point d’entrée minimal

La manière la plus simple de démarrer un serveur Ktor consiste à utiliser embeddedServer. Transmettez la fabrique du moteur, le port et un bloc de configuration :

import io.ktor.server.engine.*
import io.ktor.server.netty.*
import io.ktor.server.routing.*
import io.ktor.server.response.*

fun main() {
    embeddedServer(Netty, port = 8080) {
        routing {
            get("/") { call.respondText("Hello, Ktor!") }
        }
    }.start(wait = true)
}

Modules d’application

Pour les projets plus importants, répartissez la configuration entre plusieurs modules — des fonctions d’extension sur Application. Un module installe des modules d’extension et enregistre des routes. Cela rend la base de code plus facile à tester et à composer :

fun Application.configureRouting() {
    routing {
        get("/health") { call.respondText("OK") }
    }
}

fun Application.configureSerialization() {
    install(ContentNegotiation) { json() }
}

Appel des modules depuis main

Appelez les fonctions de vos modules à l’intérieur du bloc embeddedServer afin de les composer :

fun main() {
    embeddedServer(Netty, port = 8080) {
        configureRouting()
        configureSerialization()
        configureSecurity()
    }.start(wait = true)
}

application.conf (configuration HOCON)

L’alternative à embeddedServer consiste à utiliser un fichier application.conf (au format HOCON) et à exécuter l’application via EngineMain. Le fichier de configuration indique le module d’entrée et le port :

# application.conf
ktor {
    deployment { port = 8080 }
    application {
        modules = [ com.example.ApplicationKt.module ]
    }
}

EngineMain ou embeddedServer

Utilisez embeddedServer lorsque vous souhaitez garder le contrôle total dans le code (idéal pour les tests et les applications simples). Utilisez EngineMain avec application.conf lorsque vous souhaitez une configuration propre à l’environnement sans recompiler.

L’objet ApplicationCall

Chaque gestionnaire de requêtes reçoit un ApplicationCall. Celui-ci donne accès à la requête (call.request), à la réponse (call.response) et à des fonctions pratiques comme call.respondText() et call.respond().

Environnement et journalisation

Accédez à la configuration de l’environnement au sein d’un module au moyen de environment.config. La journalisation utilise SLF4J ; ajoutez un fichier logback.xml à src/main/resources/ pour configurer les niveaux de journalisation et le format de sortie.

Rechargement à chaud en développement

Ktor prend en charge le rechargement à chaud pendant le développement au moyen de l’indicateur du mode development. Activez-le dans application.conf ou par programmation : embeddedServer(Netty, port = 8080, developmentMode = true) { ... }.

Convention de structure du projet

Organisation typique d’un projet Ktor :

  • Application.kt — point d’entrée main()
  • plugins/ — un fichier par fonction d’extension d’application (routage, sérialisation, authentification, etc.)
  • routes/ — définitions des routes regroupées par domaine
  • models/ — classes de données

Vérification rapide

Quel est le rôle d’une fonction de module d’application dans Ktor ?

Récapitulatif : configuration d’un projet Ktor

Points essentiels :

  • embeddedServer(Engine, port) { ... }.start(wait=true) est le point d’entrée le plus simple
  • Répartissez la configuration entre des fonctions d’extension de module sur Application
  • Utilisez EngineMain avec application.conf pour externaliser la configuration
  • Chaque gestionnaire de requêtes utilise ApplicationCall pour accéder à la requête et à la réponse
  • Regroupez les routes dans un paquet routes/ pour faciliter la maintenance

Questions Fréquemment Posées

La leçon « Configuration d’un projet Ktor : embeddedServer et modules d’application » est-elle gratuite ?

Oui — le texte complet de « Configuration d’un projet Ktor : embeddedServer et modules d’application » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Kotlin Academy, passe à CoddyKit PRO. Le cours Kotlin Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Configuration d’un projet Ktor : embeddedServer et modules d’application » ?

Initialisez une application Ktor, configurez Netty et définissez les modules de l’application. Tu pratiques Kotlin Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Kotlin Academy ?

Aucune expérience préalable n'est requise. Kotlin Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Configuration d’un projet Ktor : embeddedServer et modules d’application » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Kotlin Academy ?

Oui. Chaque leçon Kotlin Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Configuration d’un projet Ktor : embeddedServer et modules d’application
  2. Routage et paramètres typés
  3. Négociation de contenu et kotlinx.serialization
  4. Modules d’authentification : JWT et session
← Retour à Kotlin Academy