package Ġblog . document ing _ apis _ with _ openapi Ċ Ċ import Ġorg . http 4 k . contract . Contract Route Ċ import Ġorg . http 4 k . contract . Tag Ċ import Ġorg . http 4 k . contract . div Ċ import Ġorg . http 4 k . contract . meta Ċ 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 . Response Ċ import Ġorg . http 4 k . core . Status . Companion . NOT _ FOUND Ċ 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 . lens . Path Ċ Ċ data Ġclass ĠPerson ( val Ġname : ĠString , Ġval Ġage : ĠAge , Ġval Ġchildren : ĠList < Person > Ġ= Ġempty List ()) Ċ Ċ fun ĠFamily (): ĠContract Route Ġ{ ĊĊĠĠĠ Ġval Ġfamily Data Ġ= ĠPerson (" Bob ", ĠAge ( 8 5 ), ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠPerson (" An ita ", ĠAge ( 5 5 )), ĊĠĠĠĠĠĠĠ ĠPerson (" D onal d ", ĠAge ( 5 2 ), ĠlistOf ( Person (" Don ĠJ r ", ĠAge ( 2 1 )))) ĊĠĠĠ Ġ)) ĊĊĠĠĠ Ġval Ġresponse Lens Ġ= ĠBody . auto < Person >(" The Ġmatched Ġfamily Ġtree "). to Lens () ĊĊĠĠĠ Ġfun Ġhandler ( query Name : ĠString ): ĠHttp Handler Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠPerson . search (): ĠPerson ? Ġ= Ġwhen Ġ( name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquery Name Ġ-> Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġchildren . first OrNull Ġ{ Ġit . search () Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfamily Data . search ()?. let Ġ{ ĠResponse ( OK ). with ( response Lens Ġof Ġit ) Ġ} Ġ?: ĠResponse ( NOT _ FOUND ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġ"/ search " Ġ/ ĠPath . of (" name ", Ġ" The Ġname Ġto Ġsearch Ġfor Ġin Ġthe Ġtree ") Ġmeta Ġ{ ĊĠĠĠĠĠĠĠ Ġsummary Ġ= Ġ" Search Ġfamily Ġtree " ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Given Ġa Ġname , Ġreturns Ġa Ġsub Ġfamily Ġtree Ġstarting Ġwith Ġthat Ġperson " ĊĠĠĠĠĠĠĠ Ġtags Ġ+= ĠTag (" query ") ĊĠĠĠĠĠĠĠ Ġreturning ( OK , Ġresponse Lens Ġto ĠPerson (" D onal d ", ĠAge ( 5 2 ), ĠlistOf ( Person (" Don ĠJ r ", ĠAge ( 2 1 )))), Ġ" Cut Ġdown Ġfamily Ġtree ") ĊĠĠĠĠĠĠĠ Ġreturning ( NOT _ FOUND Ġto Ġ" That Ġperson Ġdoes Ġnot Ġexist Ġthe Ġfamily ") ĊĠĠĠ Ġ} Ġbind Contract ĠGET Ġto Ġ:: handler Ċ } Ċ