I hereby claim:
- I am jknack on github.
- I am eespina (https://keybase.io/eespina) on keybase.
- I have a public key ASDK3Z_IhA2nG7hBp13jhDPb5dl31ZGn6wooOc0UKRVhRwo
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
/** | |
* Everything about your Pets. | |
*/ | |
path("/api/pet") { | |
/** | |
* List pets ordered by id. | |
* | |
* @param start Start offset, useful for paging. Default is `0`. | |
* @param max Max page size, useful for paging. Default is `20`. | |
* @return Pets ordered by name. |
/** Export API to Swagger and RAML: */ | |
use(ApiTool() | |
.filter { r -> r.pattern().startsWith("/api") } | |
.swagger() | |
.raml()) |
/** JSON: */ | |
use(Jackson()) | |
/** Database: */ | |
use(Jdbc()) | |
use(Flywaydb()) | |
use(Jdbi3() | |
.doWith { jdbi -> | |
jdbi.installPlugin(SqlObjectPlugin()) | |
jdbi.installPlugin(KotlinPlugin()) |
/** | |
* Kotlin ApiTool. | |
*/ | |
class App : Kooby({ | |
/** JSON: */ | |
use(Jackson()) | |
/** Database: */ | |
use(Jdbc()) |
import org.jooby.* | |
import org.jooby.jdbi.Jdbi | |
import org.jooby.json.Jackson | |
import org.skife.jdbi.v2.Handle | |
data class Pet(val name: String) | |
class App : Kooby({ |
/** Pet API. */ | |
route("/api/pets") { | |
/** List all pets. */ | |
get { -> | |
listOf(Pet("Lala")) | |
} | |
/** Get a pet by name. */ | |
get("/:name") { -> | |
Pet(param<String>("name")) |
get("/params") { | |
val number = param<Int>("number") | |
val string = param<String>("string") | |
"Got a $number and $string" | |
} | |
post ("/create") { | |
val pet = body<Pet>() | |
"Got a new $pet" | |
} |
post ("/create") { | |
val pet = body(Pet::class) | |
"Got a new $pet" | |
} | |
post ("/form") { | |
val pet = form(Pet::class) | |
"Got a new $pet via form-submit!!" | |
} |
get { | |
val name = param("name").value() | |
"Hello $name!" | |
} |