これらの記事で説明したように、私は、メディアタイプの5つのレベルを使用して、ドメイン駆動設計の原則と私のREST APIにCQRSの原則を適用しようとしています: https://www.infoq.com/articles/rest-api-on-cqrs http://byterot.blogspot.ch/2012/12/5-levels-of-media-type-rest-csds.html5段階春REST
私の技術的なコンテキストは、Spring RESTフレームワークバージョン3.2です。
基本的に、私は異なる "ドメインモデル"のメディアタイプを使用して私のコマンドをマップできる必要があります。ある
PUT /resources/123
Content-Type: application/json;domain-model=CommandOne
エラー:
@Controller
@RequestMapping("resources")
public class MyController {
@RequestMapping(value = "{id}", method = RequestMethod.PUT, consumes = "application/json;domain-model=CommandOne")
@ResponseBody
public void commandOne(@PathVariable Long id, @RequestBody CommandOne commandOne) {
LOG.info("Using command {}", commandOne);
}
@RequestMapping(value = "{id}", method = RequestMethod.PUT, consumes = "application/json;domain-model=CommandTwo")
@ResponseBody
public void commandTwo(@PathVariable Long id, @RequestBody CommandTwo commandTwo) {
LOG.info("Using command {}", commandTwo);
}
}
問題があるPUTを要求するとき、私はマッピングエラーを取得しています: したがって、私は、次のマッピングが動作するように期待
java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path ...
Springでは、異なるドメインモデルのMedia Typesと同じURIをマップすることはできません。どのように私はそれを達成することができますか?何か不足していますか?
多くのおかげ :O)