Edit on GitHub


Implicit Versioning

You can populate Version numbers in all Request DTO’s implementing IHasVersion, i.e:

public class Hello : IReturn<HelloResponse>, IHasVersion {
    public int Version { get; set; }
    public string Name { get; set; }

By assigning the Version property on the Service Clients, e.g:

client.Version = 2;

Which will auto populate each Request DTO that implements IHasVersion, e.g:

client.Get(new Hello { Name = "World" });  // Hello.Version=2

Version Abbreviation Convention

A popular convention for specifying versions in API requests is with the ?v=1 QueryString which ServiceStack now uses as a fallback for populating any Request DTO’s that implement IHasVersion (as above).

Note: as ServiceStack’s message-based design promotes forward and backwards-compatible Service API designs, our recommendation is to only consider implementing versioning when necessary, at which point check out our recommended versioning strategy.