DDDが新しく、PUT動詞を使用して集約を更新する方法を理解しようとしています。REST経由のDDD更新
集約のすべてのプロパティにプライベートセッターがある場合は、ビジネス要件ごとに機能のセットを用意する必要があることは明らかです。例
supportTicket.Resolve();
それは、私が/api/tickets/5/resolve
などのエンドポイントでこれを達成することができることを私にとっては明らかですが、私はアトミック全体のチケットを更新するための方法を提供したい場合のために?その場合は
は一例として、ユーザは、以下の身体
{"status" : "RESOLVED", "Title":"Some crazy title"}
で/api/tickets/5
にPUT要求を行うことができます私はApplicationSercvice
if(DTO.Status != null && dto.Status == "RESOLVED")
supportTicket.Resolve();
if(DTO.Title != null)
supportTicket.setNewTitle(DTO.title);
にこのような何かをする必要がありますし、変更されたチケットのタイトルには、チケットが解決された場合に変更を防止するためのビジネスロジックがありますが、集計を更新する際に何らかの優先順位を考慮する必要がありますか、まったく間違って見ていますか?
これはDDDよりAPIデザインが多いと思うが、この記事をチェックしてください:https://www.thoughtworks.com/insights/blog/rest-api-design-resource-modeling-tl; dr; CRUDから脱出する。 – acid