Merge pull request #4581 from smmansoor/master

[BAEL-1753] added ToDo application controllers
This commit is contained in:
Tom Hombergs 2018-06-29 21:19:01 +02:00 committed by GitHub
commit 0fd7481bb9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 13 deletions

View File

@ -5,7 +5,7 @@ version '1.0-SNAPSHOT'
buildscript { buildscript {
ext.kotlin_version = '1.2.40' ext.kotlin_version = '1.2.41'
ext.ktor_version = '0.9.2' ext.ktor_version = '0.9.2'
repositories { repositories {

View File

@ -1,26 +1,26 @@
@file:JvmName("APIServer") @file:JvmName("APIServer")
import io.ktor.application.call import io.ktor.application.call
import io.ktor.application.install import io.ktor.application.install
import io.ktor.features.CallLogging import io.ktor.features.CallLogging
import io.ktor.features.ContentNegotiation import io.ktor.features.ContentNegotiation
import io.ktor.features.DefaultHeaders import io.ktor.features.DefaultHeaders
import io.ktor.gson.gson import io.ktor.gson.gson
import io.ktor.http.ContentType
import io.ktor.request.path import io.ktor.request.path
import io.ktor.request.receive
import io.ktor.response.respond import io.ktor.response.respond
import io.ktor.response.respondText import io.ktor.routing.*
import io.ktor.routing.get
import io.ktor.routing.routing
import io.ktor.server.engine.embeddedServer import io.ktor.server.engine.embeddedServer
import io.ktor.server.netty.Netty import io.ktor.server.netty.Netty
import org.slf4j.event.Level import org.slf4j.event.Level
data class Author(val name: String, val website: String) data class Author(val name: String, val website: String)
data class ToDo(var id: Int, val name: String, val description: String, val completed: Boolean)
fun main(args: Array<String>) { fun main(args: Array<String>) {
val toDoList = ArrayList<ToDo>();
val jsonResponse = """{ val jsonResponse = """{
"id": 1, "id": 1,
"task": "Pay waterbill", "task": "Pay waterbill",
@ -42,15 +42,31 @@ fun main(args: Array<String>) {
setPrettyPrinting() setPrettyPrinting()
} }
} }
routing { routing() {
get("/todo") { route("/todo") {
call.respondText(jsonResponse, ContentType.Application.Json) post {
} var toDo = call.receive<ToDo>();
get("/author") { toDo.id = toDoList.size;
val author = Author("baeldung", "baeldung.com") toDoList.add(toDo);
call.respond(author) call.respond("Added")
}
delete("/{id}") {
call.respond(toDoList.removeAt(call.parameters["id"]!!.toInt()));
}
get("/{id}") {
call.respond(toDoList[call.parameters["id"]!!.toInt()]);
}
get {
call.respond(toDoList);
}
} }
get("/author"){
call.respond(Author("Baeldung","baeldung.com"));
}
} }
}.start(wait = true) }.start(wait = true)