Spring MVC@Controller
とを使用してビルドした単純な REST API があり@RequestMapping
ます。応答のラッピングを開始して、追加のメタデータを提供したいと思います。
たとえば、次の呼び出しが返されるとします。
HTTP GET: /users/1
{
"userName" : "Jack Jackerson"
}
次のようにラップしたいと思います。
{
"metadata" :
{
"callLimit" : "50",
"callsRemaining" : "49"
},
"result" :
{
"userName" : "Jack Jackerson"
}
} ..etc..
limit
さらに、リストを管理するためのパラメータの標準セット (および)をサポートしたいと考えていますoffset
。
これはすべての API メソッドに関係するため、Spring の内部サービスのデコレータとして実装したいと考えています。これにより、メソッド自体が実際のロジックに集中し、この定型文を集中管理できるようになります。
私は、HttpMessageConverter
登録されている を装飾し、それらをデコレーターでラップする道を歩み始めました。
ただし、これでは、@RequestBody
. (多くはそうではありません)
理想的には、スタックの上位にいる必要がありますRequestResponseBodyMethodProcessor.writeWithMessageConverters()
。良い候補のように見えますが、ここにフックする方法がわかりません。
このタイプの API 全体のリクエスト/レスポンス処理を実装するために、Spring MVC で使用できるオプションは何ですか?