問題:
WCF から移行する場合、ServiceStack サービスに最適な要求 DTO を設計することが困難になる場合があるスタイルの RPC サービス。重複コードを減らし、複数のリクエスト シナリオを効率的に処理しようとすると、問題が発生します。
ベスト プラクティス:
メッセージ ベースの設計:
コール セマンティクスと応答によるグループ化タイプ:
リファクタリングの例:
GetBookingLimit と GetBookingLimits をリファクタリングする次の例を考えてみましょう。サービス:
元の:
[Route("/bookinglimit", "GET")]<br>パブリック クラス GetBookingLimit : IReturn<GetBookingLimitResponse><br>{</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">public int Id { get; set; }
}
public class GetBookingLimitResponse
{
// ...
}
[Route("/bookinglimits ", "GET")]
パブリック クラスGetBookingLimits : IReturn
{
public DateTime Date { get; set; }
}
パブリック クラスGetBookingLimitsResponse
{
// ...
}
Re-因数分解:
[Route("/bookinglimits/{Id}")]<br>public class GetBookingLimit : IReturn<BookingLimit><br>{</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">public int Id { get; set; }
}
パブリック クラスBookingLimit
{
// ...
}
[Route("/bookinglimits/search")]
パブリック クラス FindBookingLimits : IReturn>
{
public DateTime BookedAfter { get; set; }
}
追加の考慮事項:
以上がサービスを効率的に実装するために ServiceStack リクエスト DTO 設計を最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。