Ktor para Kotlin: guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é Ktor e para que serve?

\n\n

Ktor é um framework web assíncrono, escrito em linguagem Kotlin pela empresa JetBrains (criadores do IntelliJ IDEA e do próprio Kotlin). Ele é projetado para criar aplicações server-side, clientes HTTP e microsserviços utilizando os recursos das corrotinas do Kotlin. Ktor é totalmente construído sobre corrotinas, o que o torna não bloqueante, leve e incrivelmente performático.

\n\n

Por que usar Ktor? Primeiro, é um framework nativo Kotlin que se integra perfeitamente ao ecossistema da linguagem. Segundo, Ktor é modular: você conecta apenas os componentes que precisa (roteamento, serialização, autenticação, WebSockets, etc.). Terceiro, ele suporta multiplataforma: o mesmo código do cliente pode rodar em JVM, Android, iOS e JavaScript. Ktor é ideal para criar APIs REST, microsserviços, bem como para escrever clientes HTTP que podem funcionar em qualquer plataforma.

\n\n

Instalação do Ktor

\n\n

Ktor não é uma única biblioteca, mas um conjunto de dependências Gradle. A instalação é feita através do sistema de build Gradle (ou Maven). Para começar, crie um novo projeto Kotlin e adicione as seguintes dependências no arquivo build.gradle.kts:

\n\n
// build.gradle.kts\nval ktorVersion = "2.3.12" // Versão atual no momento da escrita\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") // Engine Netty\n    implementation("io.ktor:ktor-server-content-negotiation:$ktorVersion") // Para JSON\n    implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion") // Serialização JSON\n\n    // Cliente Ktor (se necessário)\n    implementation("io.ktor:ktor-client-core:$ktorVersion")\n    implementation("io.ktor:ktor-client-cio:$ktorVersion") // Engine CIO\n    implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion")\n\n    // Logging\n    implementation("ch.qos.logback:logback-classic:1.4.14")\n}\n\napplication {\n    mainClass.set("ApplicationKt") // Ponto de entrada\n}
\n\n

Depois disso, execute o comando ./gradlew build para baixar as dependências. Se você usa Maven, dependências análogas podem ser encontradas no site oficial do Ktor. Para um início rápido, você também pode usar o gerador de projetos em start.ktor.io.

\n\n

Início rápido com exemplo de código

\n\n

Vamos criar um servidor HTTP simples que responde "Hello, World!" a uma requisição GET na raiz.

\n\n
import 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\n

Execute este código. Agora abra o navegador e acesse http://localhost:8080. Você verá o texto "Hello, World!". Parabéns, seu primeiro servidor Ktor está rodando!

\n\n

Principais métodos e funções do Ktor

\n\n

Abaixo estão 10 métodos/funções chave do Ktor que você usará com mais frequência.

\n\n

1. embeddedServer

\n

O que faz: Cria e inicia um servidor HTTP embutido. Este é o principal ponto de entrada para qualquer aplicação Ktor.

\n

Parâmetros:

\n
    \n
  • engine — engine do servidor (Netty, CIO, Jetty, Tomcat).
  • \n
  • port — porta para escuta (padrão 80).
  • \n
  • host — host (padrão 0.0.0.0).
  • \n
  • module — função lambda onde a aplicação é configurada (rotas, plugins).
  • \n
\n

Exemplo:

\n
embeddedS                    

Recommendations