¿Qué es Ktor y para qué sirve?
\n\nKtor es un framework web asíncrono, escrito en el lenguaje Kotlin por la empresa JetBrains (creadores de IntelliJ IDEA y del propio Kotlin). Está diseñado para crear aplicaciones de servidor, clientes HTTP y microservicios utilizando las capacidades de las corrutinas de Kotlin. Ktor está completamente construido sobre corrutinas, lo que lo hace no bloqueante, ligero e increíblemente eficiente.
\n\n¿Por qué usar Ktor? En primer lugar, es un framework nativo de Kotlin que se integra perfectamente con el ecosistema del lenguaje. En segundo lugar, Ktor es modular: solo conectas los componentes que necesitas (enrutamiento, serialización, autenticación, WebSockets, etc.). En tercer lugar, es multiplataforma: el mismo código de cliente puede funcionar en JVM, Android, iOS y JavaScript. Ktor es ideal para crear API REST, microservicios, así como para escribir clientes HTTP que pueden funcionar en cualquier plataforma.
\n\nInstalación de Ktor
\n\nKtor no es una sola biblioteca, sino un conjunto de dependencias de Gradle. La instalación se realiza a través del sistema de compilación Gradle (o Maven). Para empezar, crea un nuevo proyecto Kotlin y agrega las siguientes dependencias al archivo build.gradle.kts:
// build.gradle.kts\nval ktorVersion = "2.3.12" // Versión actual al momento de escribir\n\nplugins {\n kotlin("jvm") version "1.9.22"\n application\n}\n\ndependencies {\n // Servidor Ktor\n implementation("io.ktor:ktor-server-core:$ktorVersion")\n implementation("io.ktor:ktor-server-netty:$ktorVersion") // Motor Netty\n implementation("io.ktor:ktor-server-content-negotiation:$ktorVersion") // Para JSON\n implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion") // Serialización JSON\n\n // Cliente Ktor (si es necesario)\n implementation("io.ktor:ktor-client-core:$ktorVersion")\n implementation("io.ktor:ktor-client-cio:$ktorVersion") // Motor CIO\n implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion")\n\n // Registro (logging)\n implementation("ch.qos.logback:logback-classic:1.4.14")\n}\n\napplication {\n mainClass.set("ApplicationKt") // Punto de entrada\n}\n\nDespués de esto, ejecuta el comando ./gradlew build para descargar las dependencias. Si usas Maven, puedes encontrar dependencias similares en el sitio web oficial de Ktor. Para un inicio rápido, también puedes usar el generador de proyectos en start.ktor.io.
Inicio rápido con ejemplo de código
\n\nVamos a crear un servidor HTTP simple que responda "Hello, World!" a una solicitud GET en la ruta raíz.
\n\nimport io.ktor.server.application.*\nimport io.ktor.server.engine.*\nimport io.ktor.server.netty.*\nimport io.ktor.server.response.*\nimport io.ktor.server.routing.*\n\nfun main() {\n embeddedServer(Netty, port = 8080) {\n routing {\n get("/") {\n call.respondText("Hello, World!")\n }\n }\n }.start(wait = true)\n}\n\nEjecuta este código. Ahora abre el navegador y ve a la dirección http://localhost:8080. Verás el texto "Hello, World!". ¡Felicidades, tu primer servidor Ktor está funcionando!
Métodos y funciones principales de Ktor
\n\nA continuación se presentan 10 métodos/funciones clave de Ktor que usarás con más frecuencia.
\n\n1. embeddedServer
\nQué hace: Crea e inicia un servidor HTTP integrado. Este es el punto de entrada principal para cualquier aplicación Ktor.
\nParámetros:
\n- \n
engine— motor del servidor (Netty, CIO, Jetty, Tomcat). \n port— puerto de escucha (por defecto 80). \n host— host (por defecto 0.0.0.0). \n module— función lambda donde se configura la aplicación (rutas, plugins). \n
Ejemplo:
\nembeddedS