0
我已經版本的DTO(或好或壞)像這樣:ServiceStack .NET客戶端 - 如何使用要求的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」路由之外,是否有更好的方法來完成此默認路由行爲?
強制客戶端在每個高於V1的調用中手動指定路由看起來像是一個浪費的機會,尤其是當所有關聯路由信息綁定到該DTO(僅缺少版本信息)時。 如果我得到時間,我將嘗試構建一種基於指定版本從DTO中提取正確路由的方法,並在此處發佈示例。 我知道版本控制是相對的,所以將其構建到SS客戶端框架中可能沒有意義 - 但它似乎對我們的實現(至少一些)有意義。 感謝您的回答! – jglassco
@jglassco right,但這不是建議的版本控制策略,[this is](http://stackoverflow.com/a/12413091/85785)它不需要顯式支持,因爲該版本自然地填充在構造器中。添加ServiceStack參考還支持在生成的DTO中添加[隱式版本號](https://github.com/ServiceStack/ServiceStack/wiki/CSharp-Add-ServiceStack-Reference#addimplicitversion)。 – mythz