ServiceStack .net客户端 - 如何使用具有多个路由的请求DTO

时间:2015-06-30 20:59:59

标签: servicestack

我已经对DTO进行了版本控制(无论好坏):

[Route("/v1/login", Verbs = "POST")]
[Route("/v2/login", Verbs = "POST")]        
[DataContract]
public class Login : IReturn<LoginResponse>
{
    [DataMember( IsRequired = true)]
    public string Username { get; set; }

    [DataMember( IsRequired = true)]
    public string Password { get; set; }

    [DataMember( IsRequired = false)]
    public string Key{ get; set; }//added for v2
}

我的问题是,当通过.net客户端使用api时,我似乎无法弄清楚如何指定使用哪个版本的路由(除了在初始化jsonclient时修改基本URL,这在所有版本中都不起作用我们的用例)。就好像DTO默认为1路线,即使有更多路线选项可用。

除了在帖子中手动指定“v2”路由之外,还有更好的方法来完成此默认路由行为吗?

1 个答案:

答案 0 :(得分:0)

路线含糊不清,无法推断,因此您需要在呼叫站点传递,例如:

HTTP/1.1

基于消息的设计有助于设计和向后转发兼容的DTO,它们不需要版本控制,但是如果你必须版本检查ServiceStack的recommended versioning strategy