ServiceStack: RESTful Resource Versioning

He leído elVentajas de los servicios web basados ​​en mensajes. ¿Me pregunto si hay un estilo / práctica recomendados para la versión de recursos Restful en ServiceStack? Las diferentes versiones podrían generar diferentes respuestas o tener diferentes parámetros de entrada en el DTO de solicitud.

Me inclino hacia una versión del tipo de URL (es decir, / v1 / movies / {Id}), pero he visto otras prácticas que configuran la versión en los encabezados HTTP (es decir, Content-Type: application / vnd.company.myapp-v2 ).

Espero una forma que funcione con la página de metadatos, pero no es un requisito, ya que me he dado cuenta de que simplemente usar la estructura de carpetas / espacios de nombres funciona bien al renderizar rutas.

Por ejemplo (esto no se muestra correctamente en la página de metadatos pero funciona correctamente si conoce la ruta / url directa)

/ v1 / movies / {id}/v1.1/movies/{id}

Código

namespace Samples.Movies.Operations.v1_1
{
    [Route("/v1.1/Movies", "GET")]
    public class Movies
    {
       ...
    } 
}
namespace Samples.Movies.Operations.v1
{
    [Route("/v1/Movies", "GET")]
    public class Movies
    {
       ...
    }   
}

y servicios correspondientes ...

public class MovieService: ServiceBase<Samples.Movies.Operations.v1.Movies>
{
    protected override object Run(Samples.Movies.Operations.v1.Movies request)
    {
    ...
    }
}

public class MovieService: ServiceBase<Samples.Movies.Operations.v1_1.Movies>
    {
        protected override object Run(Samples.Movies.Operations.v1_1.Movies request)
        {
        ...
        }
    }

Respuestas a la pregunta(3)

Su respuesta a la pregunta