Cómo escribir una API REST en Kotlin en 30 minutos: para principiantes

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción

Kotlin es un lenguaje de programación moderno y estáticamente tipado que se ejecuta en la Máquina Virtual de Java (JVM) y es completamente compatible con el ecosistema Java. Gracias a su concisión, seguridad y potentes capacidades funcionales, Kotlin se ha convertido en uno de los lenguajes más populares para el desarrollo de aplicaciones de servidor, especialmente después de que Google lo eligiera como lenguaje principal para Android.

En este artículo crearemos una API REST completa en Kotlin, utilizando el framework ligero Ktor y la biblioteca para trabajar con bases de datos Exposed. Implementaremos un servicio simple para la gestión de tareas (Lista de Tareas) con soporte para todas las operaciones CRUD (crear, leer, actualizar, eliminar). Todo el proceso te llevará no más de 30 minutos si ya tienes instalados IntelliJ IDEA y JDK.



1. Configuración del proyecto

Para empezar, crearemos un nuevo proyecto Kotlin con soporte para Gradle. Abre IntelliJ IDEA y selecciona File → New → Project. En el asistente de creación de proyecto, elige Kotlin → JVM.

Paso 1.1: Estructura de build.gradle.kts

Añade las siguientes dependencias al archivo 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")}

Estas dependencias incluyen: el propio framework Ktor, soporte para serialización JSON, la biblioteca Exposed para trabajar con la base de datos y la base de datos integrada H2 para pruebas.



Paso 1.2: Punto de entrada

Crea el archivo Application.kt en el paquete 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. Configuración de serialización y enrutamiento

Paso 2.1: Plugins de la aplicación

Crea el directorio plugins y el archivo 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() }}


Paso 2.2: Definición del modelo de datos

Crea el archivo 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. Trabajo con la base de datos

Paso 3.1: Configuración de la conexión

Crea el archivo 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) } }}


Paso 3.2: Definición de la tabla

En el mismo paquete, crea TasksTable.kt:

package co                

Blogs

Book Recommendations