1

我正在使用 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 属性,这可能会令人困惑。

另外,我认为这会在不同的地方出现,所以我希望有更好的方法来做到这一点。

有什么建议么?

4

1 回答 1

0

就像@myth 说的那样,我只是通过尝试生成类似 MVC 的 url 路径来使事情变得复杂。

我坚持按原样使用 uri 路径。

于 2012-09-28T13:13:40.277 回答