私は最初の春のアプリケーションを書いており、春に最適で魅力的なコードを作る経験を積みたいと思います。 私は同様のコードRESTコントローラのパターンを作る方法
@RequestMapping(path = "/1154",
method = RequestMethod.POST,
headers = {"Content-Type=application/json"},
consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,
produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public CreateUserResp processRequest(@RequestBody @Valid CreateUserReq request, BindingResult bindingResult) {
CreateUserResp response = new CreateUserResp();
if (bindingResult.hasErrors()){
response.setResultCode(102); // Validation error
response.setErrMsg("Wrong " + bindingResult.getFieldError().getDefaultMessage() + " value.");
} else {
// main service
request = UserService.doSomething();
}
return response;
}
@RequestMapping(path = "/1155",
method = RequestMethod.POST,
headers = {"Content-Type=application/json"},
consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,
produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ChangeUserResp processRequest(@RequestBody @Valid ChangeUserReq request, BindingResult bindingResult) {
ChangeUserResp response = new ChangeUserResp();
if (bindingResult.hasErrors()){
response.setResultCode(102); // Validation error
response.setErrMsg("Wrong " + bindingResult.getFieldError().getDefaultMessage() + " value.");
} else {
// main service
request = ChangeService.doSomething();
}
return response;
}
@RequestMapping(path = "/1156",
method = RequestMethod.POST,
headers = {"Content-Type=application/json"},
consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,
produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public AddUserResp processRequest(@RequestBody @Valid AddUserReq request, BindingResult bindingResult) {
AddUserResp response = new AddUserResp();
if (bindingResult.hasErrors()){
response.setResultCode(102); // Validation error
response.setErrMsg("Wrong " + bindingResult.getFieldError().getDefaultMessage() + " value.");
} else {
// main service
request = AddService.doSomething();
}
return response;
}
@RequestMapping(path = "/1157",
method = RequestMethod.POST,
headers = {"Content-Type=application/json"},
consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,
produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ModifyUserResp processRequest(@RequestBody @Valid ModifyUserReq request, BindingResult bindingResult) {
ModifyUserResp response = new ModifyUserResp();
if (bindingResult.hasErrors()){
response.setResultCode(102); // Validation error
response.setErrMsg("Wrong " + bindingResult.getFieldError().getDefaultMessage() + " value.");
} else {
// main service
request = ModifyService.doSomething();
}
return response;
}
などの大きな部分を持っているいくつかのrestcontrollersを....まし
で唯一の違い(パス、@RequestBodyとResponceオブジェクトは、と呼ばれるサービス)。だから、私はこのような10-12コントローラを持っています。このコードをより最適にする方法であり、コードのこの繰り返しブロックを10回書くことはありません(スプリングメソッドまたはジェネリッククラスまたはメソッドを使用している可能性があります)。これは単なる例であり、実際のコードではありません。 Thx
答えが非常に忙しいが、マイナスを置く時間がある人に特に感謝します。
すべてのリクエストメソッドのエラーを処理するウォッチャ? – Lucas
はい、ちょうど同じ構造です。私は、検証のために入ってくるjsonオブジェクトのpojoオブジェクトを変更します。また、着信要求はコントローラのパスに依存します。レスポンスはリクエストオブジェクトに依存します – koa73
'@ RequestMapping'のためのクラスにすべてのcommenを入れると' @ RequestMapping'メソッドの違いしか定義されません。それに続いて、メソッドは異なっています。何かがスメを見ても同じではないという事実です。あなたはこのレベルで物事を生成することができますあなたは何か間違ったイホをしている... –