返すデータがない場合、スプリングが常にjsonを生成するように強制します。空のjsonオブジェクトも強制します。 サービスは、有効なjson(ステータスコードに関係なく)でない応答を拒否する別のサービスを経由します。それはいいものではありませんが、私たちはこれを支配しません。スプリングコントローラは常にjsonを生成します
スプリングコントローラでは、jsonを生成するように指示できますが、これは返すコンテンツがある場合にのみ機能します。すべての回答をjsonにするためのすばやくエレガントな方法はありますか?
@RequestMapping(value = "/test", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public
@ResponseBody
ResponseEntity<String> test(){
// if this returns null or an empty string the response body will be emtpy
// and the content-type header will not be set.
return service.getData();
}
単純にここで修正するには、if文を追加してnullをチェックするだけです。しかし、私は手動でヘッダとレスポンスボディを設定する必要があるので、これは醜いです。
私は誰かがより良い方法を知ってほしいと思っていますか?
おかげ
どのように見ることができますサービスはヌル/何も返さず、ExceptionHandlerを使って適切なレスポンスとヘッダを設定しますか? – Mubin