Eu lembro que a primeira vez que me ofereceram uma oportunidade para trabalhar com Kotlin achei estranho e acabei perguntando na hora: "Ah conhecço Kotlin, mas não serve pra desenvolvimento de apps?"
Bem, sim e muito mais!
Kotlin é uma linguagem multiplataforma desenvolvida pela JetBrains, que combina programação orientada a objetos com funcional, podendo ser utilizada para desenvolvimento de aplicações no lado do servidor, desenvolvimento Android, compilar JavaScript e código nativo.
Sua principal vantagem está em ter um código mais conciso e expressivo, mantendo compatibilidade com outros códigos em Java além de ter uma boa curva de aprendizagem.
Dito isso, como seria uma aplicação web desenvolvida em Kotlin. É o que irei demonstrar neste texto.
Criando um servidor web
Neste exemplo que eu fiz eu irei trabalhar com o Javalin.
Javalin é um framework leve que serve tanto para Java como para Kotlin.
Existem vários outros frameworks para Kotlin, mas acho que pra uma rápida demonstração ele serve, principalmente para quem está começando a programar nessa linguagem, já que não é necessário aprender muitos conceitos do framework para poder usá-lo e subir uma aplicação.
Olá Mundo!
Uma vez que você criou e configurou seu projeto, basta começar a adicionar as dependências para por nosso servidor em pé.
No meu exemplo eu utilizo o Gradle.
Primeiramente eu adicionei a biblioteca do Javalin e algumas outras dependências.
implementation 'io.javalin:javalin:3.13.4'
implementation 'org.slf4j:slf4j-simple:1.7.30'
Após isso criei um arquivo Main.kt
e adicionei o seguinte conteúdo:
import io.javalin.Javalin
fun main() {
val app = Javalin.create().start(7000)
app.get("/hello") { ctx -> ctx.result("Hello World") }
}
Basicamente estou dizendo para que seja criada uma aplicação que escute na porta 7000, e que ao acessar o recurso /hello (GET http://localhost:7000/hello) retorne a mensagem "Hello World".
Executando a chamada no Postman temos o seguinte:
Simples, não?
A partir disso podemos evoluir cada vez mais a nossa aplicação (incluir outros endpoints, integração com banco de dados, segurança) mas isso pode ficar para um próxima ;)
Top comments (0)