相关疑难解决方法(0)

ServiceStack:RESTful资源版本控制

我已经阅读了 基于消息的Web服务优势的文章,我想知道是否有推荐的样式/实践来对ServiceStack中的Restful资源进行版本控制?不同的版本可以在请求DTO中呈现不同的响应或具有不同的输入参数.

我倾向于URL类型版本控制(即/ v1/movies/{Id}),但我已经看到了在HTTP头中设置版本的其他实践(即Content-Type:application/vnd.company.myapp-v2 ).

我希望有一种方法可以使用元数据页面但不是一个需求,因为我注意到只需使用文件夹结构/命名空间在渲染路径时工作正常.

例如(这不会在元数据页面中呈现,但如果您知道直接路由/网址则执行正确)

  • / V1 /电影/ {ID}
  • /v1.1/movies/{id}

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
    {
       ...
    }   
}
Run Code Online (Sandbox Code Playgroud)

和相应的服务......

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)
        {
        ...
        }
    }
Run Code Online (Sandbox Code Playgroud)

servicestack

37
推荐指数
1
解决办法
8598
查看次数

标签 统计

servicestack ×1