Skip to content

Instantly share code, notes, and snippets.

View jknack's full-sized avatar

Edgar Espina jknack

View GitHub Profile

Keybase proof

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:

/**
* 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())
@jknack
jknack / App.kt
Created January 2, 2018 16:50
Modules for petstore demo
/** JSON: */
use(Jackson())
/** Database: */
use(Jdbc())
use(Flywaydb())
use(Jdbi3()
.doWith { jdbi ->
jdbi.installPlugin(SqlObjectPlugin())
jdbi.installPlugin(KotlinPlugin())
@jknack
jknack / App.kt
Created January 2, 2018 16:48
Petstore medium
/**
* 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({
@jknack
jknack / Route.kt
Last active August 29, 2017 17:18
/** 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"
}
@jknack
jknack / BodyOrFormSubmit.kt
Created August 29, 2017 17:01
BodyOrFormSubmit
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!!"
}
@jknack
jknack / RequestImplicitAccess.kt
Created August 29, 2017 16:58
Kotlin request implicit access
get {
val name = param("name").value()
"Hello $name!"
}