Cómo escribir una API REST en Kotlin en 30 minutos: guía paso a paso

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, conciso y seguro que está ganando popularidad en el desarrollo de aplicaciones de servidor. Gracias a su compatibilidad con Java y potentes frameworks como Ktor, puedes crear una API REST completa en solo media hora. En este artículo, mostraremos cómo escribir una API REST en Kotlin usando el framework Ktor, incluso si eres principiante.

Crearemos una aplicación simple para gestionar una lista de tareas (Todo API) con soporte para operaciones CRUD: crear, leer, actualizar y eliminar. Todo el proceso tomará no más de 30 minutos si sigues las instrucciones.



1. Preparación del proyecto y dependencias

Para empezar, necesitarás IntelliJ IDEA (Community Edition) y Gradle. Crearemos un nuevo proyecto Kotlin con soporte para Ktor.



Paso 1: Creación del proyecto Gradle

Abre IntelliJ IDEA y crea un nuevo proyecto: File → New → Project. Selecciona Gradle e indica el lenguaje Kotlin. Haz clic en Finish.



Paso 2: Agregar dependencias de Ktor

Abre el archivo build.gradle.kts y agrega las siguientes dependencias:



plugins {    kotlin("jvm") version "1.9.0"    application}

repositories { mavenCentral()}

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("ch.qos.logback:logback-classic:1.4.11")}

application { mainClass.set("ApplicationKt")}


Haz clic en el botón Sync Now en la esquina superior derecha para descargar las dependencias.



2. Creación del modelo de datos y servicio

Antes de escribir las rutas, definamos el modelo de datos para nuestra tarea y un servicio simple para almacenar datos en memoria.



Modelo TodoItem

Crea el archivo TodoItem.kt en la carpeta src/main/kotlin:



import kotlinx.serialization.Serializable

@Serializabledata class TodoItem( val id: Int, val title: String, val completed: Boolean = false)


Servicio TodoService

Crea el archivo TodoService.kt:



import java.util.concurrent.atomic.AtomicInteger

class TodoService { private val items = mutableListOf<TodoItem>() private val idCounter = AtomicInteger(1)

fun getAll(): List<TodoItem> = items.toList()

fun getById(id: Int): TodoItem? = items.find { it.id == id }

fun create(title: String): TodoItem { val newItem = TodoItem(id = idCounter.getAndIncrement(), title = title) items.add(newItem) return newItem }

fun update(id: Int, title: String?, completed: Boolean?): TodoItem? { val index = items.indexOfFirst { it.id == id } if (index == -1) return null val current = items[index] val updated = current.copy( title = title ?: current.title, completed = completed ?: current.completed ) items[index] = updated return updated }

fun delete(id: Int): Boolean = items.removeAll { it.id == id }}


3. Configuración del servidor y rutas

Ahora crearemos el archivo principal de la aplicación Application.kt y escribiremos las rutas de la API REST.



import io.ktor.server.application.*import io.ktor.server.engine.*import io.ktor.server.netty.*import io.ktor.server.routing.*import io.ktor.server.response.*import io.ktor.server.request.*import io.ktor.serialization.kotlinx.json.*import io.ktor.server.plugins.contentnegotiation.*

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

fun

Blogs

Book Recommendations