私は応答として使用Spring MVC
して返しています。任意の TYPE を入力できる一般的な応答JSON
を作成し、応答を次のようにしたいと考えています。JSON
{
status : "success",
data : {
"accounts" : [
{ "id" : 1, "title" : "saving", "sortcode" : "121212" },
{ "id" : 2, "title" : "current", "sortcode" : "445566" },
]
}
}
だから私はResponse<T>
オブジェクトを作成しました
public class Response<T> {
private String status;
private String message;
T data;
...
...
}
- これはこれを行う正しい方法ですか、それともより良い方法はありますか?
Spring
コントローラーでこの Response オブジェクトを使用して、空の応答オブジェクトおよび/または入力された応答オブジェクトを返すにはどうすればよいですか。
よろしくお願いします。
アップデート:
説明したものと同様のJSON
出力を取得するために、つまり の「アカウント」キーを使用して、コントローラーで次JSON
を使用する必要がありました。Response<Map<String, List<Account>>>
@RequestMapping(value = {"/accounts"}, method = RequestMethod.POST, produces = "application/json", headers = "Accept=application/json")
@ResponseBody
public Response<Map<String, List<Account>>> findAccounts(@RequestBody AccountsSearchRequest request) {
//
// empty accounts list
//
List<Account> accountsList = new ArrayList<Account>();
//
// response will hold a MAP with key="accounts" value="List<Account>
//
Response<Map<String, List<Account>>> response = ResponseUtil.createResponseWithData("accounts", accountsList);
try {
accountsList = searchService.findAccounts(request);
response = ResponseUtil.createResponseWithData("accounts", accountsList);
response.setStatus("success");
response.setMessage("Number of accounts ("+accounts.size()+")");
} catch (Exception e) {
response.setStatus("error");
response.setMessage("System error " + e.getMessage());
response.setData(null);
}
return response;
}
これはこれを行う正しい方法ですか?つまり、出力で「アカウント」キーを取得するにはJSON
?