package Ġio . h nd rs . api . response Ċ Ċ import Ġorg . springframework . core . Method Parameter Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . springframework . http . Response Entity Ċ import Ġorg . springframework . http . converter . Http Message Converter Ċ import Ġorg . springframework . http . server . Server HttpRequest Ċ import Ġorg . springframework . http . server . Server HttpResponse Ċ import Ġorg . springframework . web . bind . annotation . Controller Ad vice Ċ import Ġorg . springframework . web . servlet . mvc . method . annotation . ResponseBody Ad vice Ċ Ċ @ Controller Ad vice Ċ class ĠResponse Ad vice Ġ: ĠResponse Body Ad vice < Any > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġbefore Body Write ( ĊĠĠĠĠĠĠĠ Ġvalue : ĠAny ?, ĊĠĠĠĠĠĠĠ ĠreturnType : ĠMethod Parameter , ĊĠĠĠĠĠĠĠ Ġselected ContentType : ĠMediaType , ĊĠĠĠĠĠĠĠ Ġselected Converter Type : ĠClass < out ĠHttp Message Converter <* >>, ĊĠĠĠĠĠĠĠ Ġrequest : ĠServer HttpRequest , ĊĠĠĠĠĠĠĠ Ġresponse : ĠServer HttpResponse ĊĠĠĠ Ġ): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResponseEntity < *> Ġ-> ĠResponseEntity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. status ( value . statusCode ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. headers ( value . headers ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ( Response ( value . body )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠResponse ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsupports ( returnType : ĠMethod Parameter , Ġconverter Type : ĠClass < out ĠHttp Message Converter <* >> ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠreturnType . method ?. is Annotation Present ( Json ApiResponse :: class . java ) Ġ?: Ġfalse ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Retention ( Annotation Retention . RUNTIME ) Ċ @ Target ( Annotation Target . FUNCTION ) Ċ annotation Ġclass ĠJson ApiResponse ĊĊ