Comment écrire une API REST en Kotlin en 30 minutes : pour débutants

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction

Kotlin est un langage de programmation moderne, statiquement typé, qui fonctionne sur la machine virtuelle Java (JVM) et est totalement compatible avec l'écosystème Java. Grâce à sa concision, sa sécurité et ses puissantes capacités fonctionnelles, Kotlin est devenu l'un des langages les plus populaires pour le développement d'applications serveur, surtout après que Google l'a choisi comme langage principal pour Android.

Dans cet article, nous allons créer une API REST complète en Kotlin, en utilisant le framework léger Ktor et la bibliothèque de gestion de bases de données Exposed. Nous implémenterons un service simple de gestion de tâches (To-Do List) avec le support de toutes les opérations CRUD (création, lecture, mise à jour, suppression). L'ensemble du processus ne vous prendra pas plus de 30 minutes si vous avez déjà installé IntelliJ IDEA et le JDK.



1. Configuration du projet

Pour commencer, créons un nouveau projet Kotlin avec le support de Gradle. Ouvrez IntelliJ IDEA et sélectionnez File → New → Project. Dans l'assistant de création de projet, choisissez Kotlin → JVM.

Étape 1.1 : Structure de build.gradle.kts

Ajoutez les dépendances suivantes dans le fichier build.gradle.kts :

plugins {    kotlin("jvm") version "1.9.0"    id("io.ktor.plugin") version "2.3.0"    kotlin("plugin.serialization") version "1.9.0"}

dependencies { implementation("io.ktor:ktor-server-core:2.3.0") implementation("io.ktor:ktor-server-netty:2.3.0") implementation("io.ktor:ktor-server-content-negotiation:2.3.0") implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.0") implementation("org.jetbrains.exposed:exposed-core:0.41.1") implementation("org.jetbrains.exposed:exposed-dao:0.41.1") implementation("org.jetbrains.exposed:exposed-jdbc:0.41.1") implementation("com.h2database:h2:2.1.214") implementation("ch.qos.logback:logback-classic:1.4.7")}

Ces dépendances incluent : le framework Ktor lui-même, le support de la sérialisation JSON, la bibliothèque Exposed pour la gestion de la base de données et la base de données intégrée H2 pour les tests.



Étape 1.2 : Point d'entrée

Créez le fichier Application.kt dans le package com.example :

import io.ktor.server.engine.*import io.ktor.server.netty.*import com.example.plugins.*

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


2. Configuration de la sérialisation et du routage

Étape 2.1 : Plugins de l'application

Créez le répertoire plugins et le fichier Serialization.kt :

package com.example.plugins

import io.ktor.serialization.kotlinx.json.*import io.ktor.server.application.*import io.ktor.server.plugins.contentnegotiation.*

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


Étape 2.2 : Définition du modèle de données

Créez le fichier Models.kt :

package com.example.models

import kotlinx.serialization.Serializable

@Serializabledata class Task( val id: Int = 0, val title: String, val description: String = "", val completed: Boolean = false)


3. Travail avec la base de données

Étape 3.1 : Configuration de la connexion

Créez le fichier DatabaseFactory.kt :

package com.example.database

import org.jetbrains.exposed.sql.Databaseimport org.jetbrains.exposed.sql.SchemaUtilsimport org.jetbrains.exposed.sql.transactions.transaction

object DatabaseFactory { fun init() { Database.connect("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1", driver = "org.h2.Driver") transaction { SchemaUtils.create(TasksTable) } }}


Étape 3.2 : Définition de la table

Dans le même package, créez TasksTable.kt :

package co                

Blogs

Book Recommendations