package Ġio . vertx . example Ċ Ċ import Ġio . vertx . core . Abstract Vert icle Ċ import Ġio . vertx . core . Handler Ċ import Ġio . vertx . core . Promise Ċ import Ġio . vertx . core . http . HttpServer Response Ċ import Ġio . vertx . core . json . Json Ċ import Ġio . vertx . ext . web . Router Ċ import Ġio . vertx . ext . web . Routing Context Ċ Ċ class ĠMain Vert icle Ġ: ĠAbstract Vert icle () Ġ{ ĊĊĠ Ġoverride Ġfun Ġstart ( promise : ĠPromise < Void >) Ġ{ ĊĠĠĠ Ġval Ġrouter Ġ= Ġcreate Router () ĊĊĠĠĠ Ġvert x . create HttpServer () ĊĠĠĠĠĠ Ġ. request Handler ( router ) ĊĠĠĠĠĠ Ġ. listen ( config (). getInteger (" http . port ", Ġ 8 0 8 0 )) ĊĠĠĠĠĠ Ġ. on Success Ġ{ Ġpromise . complete () Ġ} ĊĠĠĠĠĠ Ġ. on Failure Ġ{ Ġpromise . fail ( it ) Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġcreate Router () Ġ= ĠRouter . router ( vertx ). apply Ġ{ ĊĠĠĠ Ġget ("/ "). handler ( handler Root ) ĊĠĠĠ Ġget ("/ isl ands "). handler ( handler Is lands ) ĊĠĠĠ Ġget ("/ countries "). handler ( handler Countries ) ĊĠ Ġ} ĊĊĠ Ġ// ĊĠ Ġ// ĠHand lers ĊĊĠ Ġval Ġhandler Root Ġ= ĠHandler < Routing Context > Ġ{ Ġreq Ġ-> ĊĠĠĠ Ġreq . response (). end (" Welcome !") ĊĠ Ġ} ĊĊĠ Ġval Ġhandler Is lands Ġ= ĠHandler < Routing Context > Ġ{ Ġreq Ġ-> ĊĠĠĠ Ġreq . response (). end With Json ( MOCK _ IS LAND S ) ĊĠ Ġ} ĊĊĠ Ġval Ġhandler Countries Ġ= ĠHandler < Routing Context > Ġ{ Ġreq Ġ-> ĊĠĠĠ Ġreq . response (). end With Json ( MOCK _ IS LAND S . map Ġ{ Ġit . country Ġ}. distinct (). sorted By Ġ{ Ġit . code Ġ}) ĊĠ Ġ} ĊĊĠ Ġ// ĊĠ Ġ// ĠMock Ġdata ĊĊĠ Ġprivate Ġval ĠMOCK _ IS LAND S Ġby Ġlazy Ġ{ ĊĠĠĠ ĠlistOf ( ĊĠĠĠĠĠ ĠIsland (" Kotlin ", ĠCountry (" R uss ia ", Ġ" RU ")), ĊĠĠĠĠĠ ĠIsland (" St ew art ĠIsland ", ĠCountry (" New ĠZe al and ", Ġ" NZ ")), ĊĠĠĠĠĠ ĠIsland (" C ock at oo ĠIsland ", ĠCountry (" A ustralia ", Ġ" AU ")), ĊĠĠĠĠĠ ĠIsland (" T as man ia ", ĠCountry (" A ustralia ", Ġ" AU ")) ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ// ĊĠ Ġ// ĠUtilities ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠExtension Ġto Ġthe ĠHTTP Ġresponse Ġto Ġoutput ĠJSON Ġobjects . ĊĠĠ Ġ*/ ĊĠ Ġfun ĠHttp Server Response . end With Json ( obj : ĠAny ) Ġ{ ĊĠĠĠ Ġthis ĊĠĠĠĠĠ Ġ. put Header (" Content - Type ", Ġ" application / json ; Ġcharset = utf - 8 ") ĊĠĠĠĠĠ Ġ. end ( Json . encode P ret til y ( obj )) ĊĠ Ġ} Ċ } Ċ