2017-06-12 8 views
0

私はResponseEntityを返すコントローラを持っています。今私はこのコードを変更し、ObjectMapperを使ってたくさんのフィルタを追加しました。この変更の後、レスポンスとしてStringを返します。以下ResponseEntity <>でStringまたはObjectを返す方が良いですか?

サンプルコード:

public ResponseEntity<String> search() { 
SearchResult searchResults = service.search(criteria); 
objectMapper.setFilterProvider(new SimpleFilterProvider() 
       .addFilter("firstFilter", new FirstFilter()) 
       .addFilter("secondFilter",new SecondFilter())); 
     return new ResponseEntity<>(objectMapper.writeValueAsString(searchResults), OK); 
} 

今、私の質問があり、これはそれを行うための良い方法です。それには何らかの意味がありますか?実際のObjectをそれのString型とは逆に送信することとの違いは何ですか?どんな助けもありがたい。ありがとう!

+0

'ResponseEntity'オブジェクトでは、' Cache-control'、 'Pragma'などのキャッシュヘッダーの微調整を行うことができます。 – harshavmb

+0

ああ、私はこれらの追加を必要としないと仮定します機能は、このような使用に他の意味がありますか? –

+0

だから、網羅的なリストはありません。しかし、 'ResponseEntity'は主に' RestController'と 'RestTemplate'で使われます。ビューを返す場合は、返す文字列は大丈夫です。私は、あなたが何を返答でやろうとしているのか分かりません。それはその使用法に大きく依存します。 – harshavmb

答えて

0

ResponseEntity<T>は、HTTP応答全体を表します。エンティティ自体のほかに、APIを使用すると、ヘッダーとステータスコードを応答に設定できます。

平文を返すと、長期的に大きな柔軟性は得られません。Stringたとえば、応答にヘッダーを追加する必要がある場合は、メソッドの戻り値の型を変更する必要があります。

関連する問題