我在服务端将查询和命令分开,如下所示:
public class ProductCommandService{
void AddProduct(Product product);
}
public interface ProductQueryService{
Product GetProduct(Guid id);
Product[] GetAllProducts();
}
命令查询分离接受方法应该改变状态或返回结果。没有问题。
public class ProductController: ApiController{
private interface ProductCommandService commandService;
private interface ProductQueryService queryService;
[HttpPost]
public ActionResult Create(Product product){
commandService.AddProduct(product);
return ???
}
[HttpGet]
public Product GetProduct(Guid id){
return commandService.GetProduct(id);
}
[HttpGet]
public Product[] GetAllProducts(){
return queryService.GetAllProducts();
}
}
我在服务端应用命令查询分离,但不在控制器类中应用。因为用户可能想查看创建的产品结果。但是commandService在Create Controller Action 方法中工作并且不返回创建的产品。
我们将返回给用户什么?所有产品?CQS 是否适用于应用程序生命周期?