我正在使用Spring MVC實現REST api。要求是:Spring MVC - 如何根據查詢參數返回不同的JSON響應?
/transactions
返回一個事務數組。/transactions?groupByCategory
返回按類別分組的事務。
例如請求#1返回:
[
{ "id": 1, "category": "auto", "amount": 100 },
{ "id": 2, "category": "misc", "amount": 200 },
{ "id": 3, "category": "auto", "amount": 300 }
]
而請求#2組這樣的結果按照類別,並返回每個類別的總和:
[
{ "category": "auto", "amount": 400 },
{ "category": "misc", "amount": 200 }
]
顯然從這些的返回值請求是不同的類型。我如何在Spring MVC中做到這一點?到目前爲止,我有:
@RequestMapping("/transactions")
public List<Transaction> getTransactions(
@RequestParam(value="groupByCategory", required=false) String groupByCategory
) {
...
}
但是,這會將返回類型修復爲List<Transaction>
。我如何適應第二種類型:List<TransactionSummaryByCategory>
?
編輯:我找到了一個解決方案,即指定返回類型爲Object
。這似乎工作,並根據對象類型正確序列化響應。不過,我想知道這是否是最佳做法!
public Object getTransactions(...) {
...
}
如何只返回目錄映射。 –
這比我擁有的更好!謝謝。 – Naresh