package Ġcom . example Ċ Ċ import Ġorg . http 4 k . core . Body Ċ import Ġorg . http 4 k . core . Http Handler Ċ import Ġorg . http 4 k . core . Method . GET Ċ import Ġorg . http 4 k . core . Method . POST Ċ import Ġorg . http 4 k . core . Response Ċ import Ġorg . http 4 k . core . Status . Companion . OK Ċ import Ġorg . http 4 k . core . with Ċ import Ġorg . http 4 k . format . Jack son . auto Ċ import Ġorg . http 4 k . routing . bind Ċ import Ġorg . http 4 k . routing . routes Ċ import Ġorg . http 4 k . server . Sun Http Ċ import Ġorg . http 4 k . server . as Server Ċ import Ġjava . time . Clock Ċ import Ġjava . time . Instant Ċ import Ġkotlin . random . Random Ċ Ċ data Ġclass ĠJson Message ( val Ġnow : ĠInstant , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrandom Number : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbool : ĠBoolean ) Ċ Ċ fun ĠJson Api ( clock : ĠClock , Ġrandom : ĠRandom ): ĠHttp Handler Ġ{ ĊĠĠĠ Ġval Ġbody Lens Ġ= ĠBody . auto < Json Message >(). to Lens () ĊĊĠĠĠ Ġreturn Ġroutes ( ĊĠĠĠĠĠĠĠ Ġ"/ echo " Ġbind ĠPOST Ġto Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreceived Ġ= Ġbody Lens ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse ( OK ). with ( body Lens Ġof Ġreceived ) ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġ"/" Ġbind ĠGET Ġto Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse ( OK ). with ( body Lens Ġof ĠJson Message ( Instant . now ( clock ), Ġrandom . nextInt (), Ġtrue )) Ġ} ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ ĠJson Api ( Clock . system Default Zone (), ĠRandom ( 0 )). as Server ( Sun Http ( 8 0 8 0 )). start () Ċ } Ċ