package Ġio . mic ronaut . docs . basics Ċ Ċ import Ġio . mic ronaut . context . annotation . Requires Ċ Ċ // Ġtag :: imports [] Ċ import Ġio . mic ronaut . http . HttpStatus Ċ import Ġio . mic ronaut . http . MediaType Ċ import Ġio . mic ronaut . http . annotation .* Ċ import Ġio . mic ronaut . http . client . Rx HttpClient Ċ import Ġio . mic ronaut . http . client . annotation . Client Ċ import Ġio . reactivex . Maybe Ċ Ċ import Ġio . mic ronaut . http . HttpRequest . GET Ċ // Ġend :: imports [] Ċ Ċ @ Requires ( property Ġ= Ġ" spec . name ", Ġvalue Ġ= Ġ" Hello Controller Spec ") Ċ @ Controller ("/") Ċ class ĠHello Controller (@ param : Client ("/ endpoint ") Ġprivate Ġval ĠhttpClient : ĠRx HttpClient ) Ġ{ ĊĊĠĠĠ Ġ// Ġtag :: non blocking [] ĊĠĠĠ Ġ@ Get ("/ hello /{ name }") ĊĠĠĠ Ġinternal Ġfun Ġhello ( name : ĠString ): ĠMaybe < String > Ġ{ Ġ// Ġ< 1 > ĊĠĠĠĠĠĠĠ Ġreturn ĠhttpClient . retrieve ( GET < Any > ("/ hello /$ name ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first Element () Ġ// Ġ< 2 > ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// Ġend :: non blocking [] ĊĊĠĠĠ Ġ@ Get ("/ endpoint / hello /{ name }") ĊĠĠĠ Ġinternal Ġfun Ġhello Endpoint ( name : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Hello Ġ$ name " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġtag :: json [] ĊĠĠĠ Ġ@ Get ("/ gre et /{ name }") ĊĠĠĠ Ġinternal Ġfun Ġg reet ( name : ĠString ): ĠMessage Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMessage (" Hello Ġ$ name ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// Ġend :: json [] ĊĊĠĠĠ Ġ@ Post ("/ gre et ") ĊĠĠĠ Ġ@ Status ( HttpStatus . CREATED ) ĊĠĠĠ Ġinternal Ġfun Ġecho (@ Body Ġmessage : ĠMessage ): ĠMessage Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmessage ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Post ( value Ġ= Ġ"/ hello ", Ġconsume s Ġ= Ġ[ MediaType . TEXT _ PLAIN ], Ġproduces Ġ= Ġ[ MediaType . TEXT _ PLAIN ]) ĊĠĠĠ Ġ@ Status ( HttpStatus . CREATED ) ĊĠĠĠ Ġinternal Ġfun Ġecho Hello (@ Body Ġmessage : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmessage ĊĠĠĠ Ġ} Ċ Ċ } Ċ