1

c#フレームワーク「servicestack」(http://www.servicestack.net/)を使用してREST Webサービスを作成していますが、より複雑なREST階層をサポートする方法を理解しようとして問題が発生しています。

そして、私はさまざまなルートを構成していますが、それは完璧に機能します

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が含まれていないため、これが機能しないことです。

1つの解決策は、MerchantGroupIdをDTOに追加することですが、問題は、DTOを他のWCFサービスと共有していることであり、取得操作中に入力されないMerchantGroupIdプロパティがStoreDtoにあると混乱する可能性があります。

さらに、これはさまざまな場所で発生していると思うので、もっと良い方法があることを望んでいました。

助言がありますか?

4

1 に答える 1

0

@myth が言うように、私は MVC のような URL パスを生成しようとすることで物事を複雑にしています。

私はURIパスをそのまま使用することに固執しています。

于 2012-09-28T13:13:40.277 に答える