package Ġio . bk bn . k omp end ium . playground Ċ Ċ import Ġcom . fasterxml . jackson . annotation . JsonProperty Ċ import Ġcom . google . gson . annotations . SerializedName Ċ import Ġio . bk bn . k omp end ium . annotations . Field Ċ import Ġio . bk bn . k omp end ium . annotations . Param Ċ import Ġio . bk bn . k omp end ium . annotations . Param Type Ċ import Ġio . bk bn . k omp end ium . core . K omp end ium Ċ import Ġio . bk bn . k omp end ium . core . Not ar ized . not ar ized Delete Ċ import Ġio . bk bn . k omp end ium . core . Not ar ized . not ar ized Get Ċ import Ġio . bk bn . k omp end ium . core . Not ar ized . not ar ized Post Ċ import Ġio . bk bn . k omp end ium . core . metadata . Request Info Ċ import Ġio . bk bn . k omp end ium . core . metadata . Response Info Ċ import Ġio . bk bn . k omp end ium . core . metadata . method . Delete Info Ċ import Ġio . bk bn . k omp end ium . core . metadata . method . Get Info Ċ import Ġio . bk bn . k omp end ium . core . metadata . method . Post Info Ċ import Ġio . bk bn . k omp end ium . core . routes . red oc Ċ import Ġio . bk bn . k omp end ium . o as . serialization . K omp end ium Serial izers Module Ċ import Ġio . bk bn . k omp end ium . playground . Basic Models . Basic Parameters Ċ import Ġio . bk bn . k omp end ium . playground . Basic Models . Basic Request Ċ import Ġio . bk bn . k omp end ium . playground . Basic Models . Basic Response Ċ import Ġio . bk bn . k omp end ium . playground . Basic Play ground To C . simple Delete Request Ċ import Ġio . bk bn . k omp end ium . playground . Basic Play ground To C . simple Get Example Ċ import Ġio . bk bn . k omp end ium . playground . Basic Play ground To C . simple Get Example With Parameters Ċ import Ġio . bk bn . k omp end ium . playground . Basic Play ground To C . simple Post Request Ċ import Ġio . bk bn . k omp end ium . playground . util . Util Ċ import Ġio . ktor . application . Application Ċ import Ġio . ktor . application . call Ċ import Ġio . ktor . application . install Ċ import Ġio . ktor . features . Content Neg otiation Ċ import Ġio . ktor . http . HttpStatusCode Ċ import Ġio . ktor . request . receive Ċ import Ġio . ktor . response . respond Ċ import Ġio . ktor . routing . route Ċ import Ġio . ktor . routing . routing Ċ import Ġio . ktor . serialization . json Ċ import Ġio . ktor . server . engine . embedded Server Ċ import Ġio . ktor . server . netty . Net ty Ċ import Ġkotlinx . serialization . Serial Name Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġjava . util . UUID Ċ Ċ /** Ċ Ġ* ĠApplication Ġentry point . Ġ ĠRun Ġthis Ġand Ġhead Ġon Ġover Ġto Ġ` localhost : 8 0 8 1 / docs ` Ċ Ġ* Ġto Ġsee Ġa Ġvery Ġsimple Ġyet Ġbe aut if ull y Ġdocumented ĠAPI Ċ Ġ*/ Ċ fun Ġmain () Ġ{ ĊĠ Ġembedded Server ( ĊĠĠĠ ĠNet ty , ĊĠĠĠ Ġport Ġ= Ġ 8 0 8 1 , ĊĠĠĠ Ġmodule Ġ= ĠApplication :: main Module ĊĠ Ġ). start ( wait Ġ= Ġtrue ) Ċ } Ċ Ċ // ĠApplication ĠModule Ċ private Ġfun ĠApplication . main Module () Ġ{ ĊĠ Ġ// ĠInstall s ĠSimple ĠJSON ĠContent ĠNeg otiation ĊĠ Ġinstall ( Content Neg otiation ) Ġ{ ĊĠĠĠ Ġjson ( json Ġ= ĠUtil . kotlin x Config ) ĊĠ Ġ} ĊĠ Ġ// ĠInstall s Ġthe ĠK omp end ium ĠPlugin Ġand Ġsets Ġup Ġbaseline Ġserver Ġmetadata ĊĠ Ġinstall ( K omp end ium ) Ġ{ ĊĠĠĠ Ġspec Ġ= ĠUtil . base Spec ĊĠ Ġ} ĊĠ Ġ// ĠConfig ures Ġthe Ġroutes Ġfor Ġour ĠAPI ĊĠ Ġrouting Ġ{ ĊĠĠĠ Ġ// ĠThis Ġadds ĠRe Doc Ġsupport Ġat Ġthe Ġ`/ docs ` Ġendpoint . ĊĠĠĠ Ġ// ĠBy Ġdefault , Ġit Ġwill Ġpoint Ġat Ġthe Ġ`/ openapi . json ` Ġcreated Ġby ĠK omp end ium ĊĠĠĠ Ġre doc ( page Title Ġ= Ġ" Simple ĠAPI ĠDocs ") ĊĠĠĠ Ġ// ĠK omp end ium Ġinf ers Ġthe Ġroute Ġpath Ġfrom Ġthe ĠK tor ĠRoute . Ġ ĠThis Ġwill Ġshow Ġup Ġas Ġthe Ġroot Ġpath Ġ`/ ` ĊĠĠĠ Ġnot ar ized Get ( simple Get Example ) Ġ{ ĊĠĠĠĠĠ Ġcall . respond ( HttpStatusCode . OK , ĠBasic Response ( c Ġ= ĠUUID . randomUUID (). toString ())) ĊĠĠĠ Ġ} ĊĠĠĠ Ġnot ar ized Delete ( simple Delete Request ) Ġ{ ĊĠĠĠĠĠ Ġcall . respond ( HttpStatusCode . No Content ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// ĠIt Ġcan Ġalso Ġinfer Ġpath Ġparameters ĊĠĠĠ Ġroute ("/ { a }") Ġ{ ĊĠĠĠĠĠ Ġnot ar ized Get ( simple Get Example With Parameters ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġcall . parameters [" a "] Ġ?: Ġerror (" Unable Ġto Ġread Ġexpected Ġpath Ġparameter ") ĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġcall . request . query Parameters [" b "] ?. toInt () Ġ?: Ġerror (" Unable Ġto Ġread Ġexpected Ġquery Ġparameter ") ĊĠĠĠĠĠĠĠ Ġcall . respond ( HttpStatusCode . OK , ĠBasic Response ( c Ġ= Ġ"$ a : Ġ$ b ")) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġroute ("/ create ") Ġ{ ĊĠĠĠĠĠ Ġnot ar ized Post ( simple Post Request ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġcall . receive < Basic Request >() ĊĠĠĠĠĠĠĠ Ġwhen Ġ( request . d ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġcall . respond ( HttpStatusCode . OK , ĠBasic Response ( c Ġ= Ġ" So Ġit Ġis Ġtrue ! ")) ĊĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġcall . respond ( HttpStatusCode . OK , ĠBasic Response ( c Ġ= Ġ" Oh , ĠI Ġknew Ġit ! ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ // ĠThis Ġis Ġa Ġtable Ġof Ġcontents Ġto Ġhold Ġall Ġthe Ġmetadata Ġfor Ġour Ġvarious ĠAPI Ġendpoints Ċ object ĠBasic Play ground To C Ġ{ ĊĠ Ġ/** ĊĠĠ Ġ* ĠThis Ġis Ġthe Ġinformation Ġrequired Ġto Ġdocument Ġa Ġsimple Ġrequest . Ġ ĠHere Ġwe Ġdeclare Ġthat Ġour Ġendpoint ĊĠĠ Ġ* Ġtakes Ġno Ġparameters , Ġand Ġwill Ġreturn Ġan Ġobject Ġof Ġtype Ġ[ Basic Response ] ĊĠĠ Ġ* Ġwith Ġstatus Ġcode Ġ[ HttpStatusCode . OK ] ĊĠĠ Ġ*/ ĊĠ Ġval Ġsimple Get Example Ġ= ĠGet Info < Unit , ĠBasic Response >( ĊĠĠĠ Ġsummary Ġ= Ġ" Simple , ĠDocument ed ĠGET ĠRequest ", ĊĠĠĠ Ġdescription Ġ= Ġ" This Ġis Ġto Ġshow case Ġjust Ġhow Ġeasy Ġit Ġis Ġto Ġdocument Ġyour ĠK tor ĠAPI !", ĊĠĠĠ Ġresponse Info Ġ= ĠResponse Info ( ĊĠĠĠĠĠ Ġstatus Ġ= ĠHttpStatusCode . OK , ĊĠĠĠĠĠ Ġdescription Ġ= Ġ" This Ġmeans Ġeverything Ġwent Ġas Ġexpected !", ĊĠĠĠĠĠ Ġexamples Ġ= Ġmap Of (" demo " Ġto ĠBasic Response ( c Ġ= Ġ" 5 2 c 0 9 9 d 7 - 8 6 4 2 - 4 6 cc - b 3 4 e - 2 2 f 3 9 b 9 2 3 cf 4 ")) ĊĠĠĠ Ġ), ĊĠĠĠ Ġtags Ġ= Ġset Of (" Simple ") ĊĠ Ġ) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠThis Ġshow cases Ġa ĠGET Ġrequest Ġwith Ġparameters . Ġ ĠHere Ġwe Ġdeclare Ġthat Ġour Ġendpoint Ġtakes Ġa Ġpath Ġand Ġa Ġquery ĊĠĠ Ġ* Ġparameter . ĠThis Ġis Ġinferred Ġby Ġthe Ġannotations Ġon Ġ[ Basic Parameters . a ] Ġand Ġ[ Basic Parameters . b ] ĊĠĠ Ġ* Ġrespectively . ĊĠĠ Ġ*/ ĊĠ Ġval Ġsimple Get Example With Parameters Ġ= ĠGet Info < Basic Parameters , ĠBasic Response >( ĊĠĠĠ Ġsummary Ġ= Ġ" Simple , ĠDocument ed ĠGET ĠRequest Ġwith ĠParameters ", ĊĠĠĠ Ġdescription Ġ= Ġ" This Ġshow cases Ġhow Ġeasy Ġit Ġis Ġto Ġdocument Ġyour Ġinput Ġparameters !", ĊĠĠĠ Ġresponse Info Ġ= ĠResponse Info ( ĊĠĠĠĠĠ Ġstatus Ġ= ĠHttpStatusCode . OK , ĊĠĠĠĠĠ Ġdescription Ġ= Ġ" This Ġmeans Ġeverything Ġwent Ġas Ġexpected !", ĊĠĠĠĠĠ Ġexamples Ġ= Ġmap Of (" demo " Ġto ĠBasic Response ( c Ġ= Ġ" 5 2 c 0 9 9 d 7 - 8 6 4 2 - 4 6 cc - b 3 4 e - 2 2 f 3 9 b 9 2 3 cf 4 ")) ĊĠĠĠ Ġ), ĊĠĠĠ Ġtags Ġ= Ġset Of (" Parameters ") ĊĠ Ġ) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠThis Ġshow cases Ġa ĠPOST Ġrequest Ġwith Ġa Ġrequest Ġbody Ġof Ġtype Ġ[ Basic Request ] ĊĠĠ Ġ*/ ĊĠ Ġval Ġsimple Post Request Ġ= ĠPost Info < Unit , ĠBasic Request , ĠBasic Response >( ĊĠĠĠ Ġsummary Ġ= Ġ" Simple , ĠDocument ed ĠPOST ĠRequest ", ĊĠĠĠ Ġdescription Ġ= Ġ" Show cases Ġhow Ġeasy Ġit Ġis Ġto Ġdocument Ġa Ġpost Ġrequest !", ĊĠĠĠ Ġrequest Info Ġ= ĠRequest Info ( ĊĠĠĠĠĠ Ġdescription Ġ= Ġ" This Ġis Ġthe Ġrequired Ġinfo Ġfor Ġthis Ġrequest !", ĊĠĠĠĠĠ Ġexamples Ġ= Ġmap Of (" demo " Ġto ĠBasic Request ( true )) ĊĠĠĠ Ġ), ĊĠĠĠ Ġresponse Info Ġ= ĠResponse Info ( ĊĠĠĠĠĠ Ġstatus Ġ= ĠHttpStatusCode . OK , ĊĠĠĠĠĠ Ġdescription Ġ= Ġ" This Ġmeans Ġeverything Ġwent Ġas Ġexpected !", ĊĠĠĠĠĠ Ġexamples Ġ= Ġmap Of (" demo " Ġto ĠBasic Response ( c Ġ= Ġ" So Ġit Ġis Ġtrue ! ")) ĊĠĠĠ Ġ), ĊĠĠĠ Ġtags Ġ= Ġset Of (" Simple ") ĊĠ Ġ) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠThis Ġshow cases Ġa ĠDELETE Ġrequest ĊĠĠ Ġ*/ ĊĠ Ġval Ġsimple Delete Request Ġ= ĠDelete Info < Unit , ĠUnit >( ĊĠĠĠ Ġsummary Ġ= Ġ" Simple , Ġdocumented ĠDELETE ĠRequest ", ĊĠĠĠ Ġdescription Ġ= Ġ" Clean in ' Ġhouse ", ĊĠĠĠ Ġresponse Info Ġ= ĠResponse Info ( ĊĠĠĠĠĠ Ġstatus Ġ= ĠHttpStatusCode . No Content , ĊĠĠĠĠĠ Ġdescription Ġ= Ġ" We Ġw ip ed Ġthe Ġfiles Ġboss " ĊĠĠĠ Ġ), ĊĠĠĠ Ġtags Ġ= Ġset Of (" Simple ") ĊĠ Ġ) Ċ } Ċ Ċ object ĠBasic Models Ġ{ ĊĠ Ġ@ Serializable ĊĠ Ġdata Ġclass ĠBasic Response ( val Ġc : ĠString ) ĊĊĠ Ġ@ Serializable ĊĠ Ġdata Ġclass ĠBasic Parameters ( ĊĠĠĠ Ġ@ Param ( type Ġ= ĠParam Type . PATH ) ĊĠĠĠ Ġval Ġa : ĠString , ĊĠĠĠ Ġ@ Param ( type Ġ= ĠParam Type . QUERY ) ĊĠĠĠ Ġval Ġb : ĠInt ĊĠ Ġ) ĊĊĠ Ġ@ Serializable ĊĠ Ġdata Ġclass ĠBasic Request ( ĊĠĠĠ Ġ@ JsonProperty (" best _ field ") ĊĠĠĠ Ġ@ SerializedName (" best _ field ") ĊĠĠĠ Ġ@ Serial Name (" best _ field ") ĊĠĠĠ Ġ@ Field ( description Ġ= Ġ" This Ġis Ġa Ġsuper Ġimportant Ġfield !! ", Ġname Ġ= Ġ" best _ field ") ĊĠĠĠ Ġval Ġd : ĠBoolean ĊĠ Ġ) Ċ } Ċ