Creare API REST in Kotlin con Javalin.io
Abbiamo già visto Javalin.io, ma in ambito Java.
Oggi vediamo come usarlo in Kotlin (praticamente è la stessa cosa).
Se usate Maven, aggiungete questa dipendenza:
<dependency>
<groupId>io.javalin</groupId>
<artifactId>javalin</artifactId>
<version>1.6.1</version>
</dependency>
Questa è la dipendenza minima, in quanto il web server è integrato (Jetty); ma uscirà questo warning:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
-------------------------------------------------------------------
Javalin: In the Java world, it's common to add your own logger.
Javalin: To easily fix the warning above, get the latest version of slf4j-simple:
Javalin: https://mvnrepository.com/artifact/org.slf4j/slf4j-simple
Javalin: then add it to your dependencies (pom.xml or build.gradle)
Javalin: Visit https://javalin.io/documentation#logging if you need more help
Decidete voi se installare anche questa dipendenza.
Inoltre, per visualizzare l'output in formato JSON, viene richiesto Jackson.
Questo un esempio di codice:
import io.javalin.Javalin
fun main(args: Array<String>) {
val app = Javalin.start(8080)
app.get("/") { ctx ->
ctx.result("Default route")
println("HOST:" + ctx.host())
println("IP:" + ctx.ip())
}
app.before("/ciao/*") {
ctx -> println("Operazioni da fare prima che venga richiamato il path!")
}
app.get("/ciao/:nome") {
ctx -> ctx.result("Ciao " + ctx.param("nome"))
}
app.after("/ciao/*") {
ctx -> println("Operazioni da fare dopo che aver richiamato il path!")
}
}
Qui creiamo due routes:
- nella root (http://localhost:8080) visualiziamo un Default route sulla pagina, e stampiamo alcune info in console
- nella seconda (http://localhost:8080/ciao/NOME_CHE_VUOI) stampiamo il nome nella pagina; ma vediamo anche come volgere operazioni prima di richiamare la route (before) e dopo averla richiamata (after)
Inoltre vi consiglio di guardare bene la pagina Context, che spiega tutte le opzioni disponibili.
Dategli un'occhiata, sembra un progetto interessante.
Enjoy!
kotlin javalin.io rest
Commentami!