Problème :
La conception de DTO de requête optimaux pour les services ServiceStack peut être difficile lors de la migration depuis WCF services RPC de style. Des problèmes surviennent lorsque l'on tente de réduire le code en double et de gérer efficacement plusieurs scénarios de requêtes.
Bonnes pratiques :
Conception basée sur les messages :
Regroupement par sémantique d'appel et réponse Types :
Refactoring Exemple :
Considérez l'exemple suivant de refactorisation des services GetBookingLimit et GetBookingLimits :
Original :
[ Route("/bookinglimit", "GET")]<br>classe publique 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; }
}
classe publique GetBookingLimitResponse
{
// ...
}
[Route("/bookinglimits ", "GET")]
public classe GetBookingLimits : IReturn
{
public DateTime Date { get; set; }
}
classe publique GetBookingLimitsResponse
{
// ...
}
Refactorisé :
[ Route("/bookinglimits/{Id}")]<br>classe publique 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; }
}
classe publique BookingLimit
{
// ...
}
[Route(" /bookinglimits/search")]
classe publique FindBookingLimits : IReturn>
{
public DateTime BookedAfter { get; set; }
}
Considérations supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!