我正在使用 c# 框架“servicestack”(http://www.servicestack.net/)创建一个休息网络服务,但在试图弄清楚如何支持更复杂的休息层次结构时遇到了问题
而且我正在配置各种路线,而且效果很好
Routes
.Add<MerchantDto>("/merchants")
.Add<MerchantDto>("/merchants/{id}")
.Add<MerchantDto>("/merchantGroups/{merchantGroupId}/merchants")
.Add<MerchantDto>("/merchantGroups/{merchantGroupId}/merchants/{id}")
.Add<StoreDto>("/stores")
.Add<StoreDto>("/stores/{id}")
.Add<StoreDto>("/merchants/{merchantId}/stores")
.Add<StoreDto>("/merchants/{merchantId}/stores/{id}");
这一切都很好。这个问题就是这样做的......
.Add<StoreDto>("/merchantGroups/{merchantGroupId}/merchants/{merchantId}/stores/{id}
这里的问题是 StoreDto 对象只包含 MerchantId,它不包含 MerchantGroupId,所以这不起作用。
一种解决方案是将 MerchantGroupId 添加到 DTO,但问题是我正在与其他一些 WCF 服务共享 DTO,如果我在 StoreDto 中有一个在检索操作期间从未填充的 MerchantGroupId 属性,这可能会令人困惑。
另外,我认为这会在不同的地方出现,所以我希望有更好的方法来做到这一点。
有什么建议么?