如何在不使用Route属性的情况下创建摘要/注释

时间:2014-02-07 19:59:38

标签: servicestack swagger servicestack-bsd

我想在代码后面创建摘要,因为我的所有路由当前都在AppConfig类中配置,但据我所知,摘要只能使用Route属性包含。

EX:

[Route("/myrequest/{Id}, "GET", Summary="My Summary", Notes="My Notes")]
public class MyRequest : IReturn<MyResponse>
{
    public int Id { get; set; }
}

我的路线配置如下:

base.Routes
    .Add<MyRequest>("/myrequest", "GET");

基本上我想做类似的事情:

base.Routes
    .Add<MyRequest>("/myrequest", "GET", "My Summary", "My Notes");

目前有办法做到这一点吗?

修改

我正在使用ServiceStack版本3.9.71

1 个答案:

答案 0 :(得分:3)

所以我再看看添加路由,发现实际上有一个重载,允许你指定摘要和注释。

以下是如何操作:

base.Routes
    .Add(typeof(MyRequest), "/myrequest", "GET", "My Summary", "My Notes");

我真的希望ServiceStack会为Generic Add方法添加一个重载,所以我不必以这种方式指定类型。

修改

我决定编写一个扩展方法来获取我最初寻找的方法。

public static class RouteExtensions
{
    public static ServiceStack.ServiceHost.IServiceRoutes Add<T>(
        this ServiceStack.ServiceHost.IServiceRoutes route, 
        string restPath,
        string verbs,
        string summary,
        string notes)
    {
        route.Add(typeof(T), restPath, verbs, summary, notes);

        return route;
    }
}

现在我可以这样做:

base.Routes
    .Add<MyRequest>("/myrequest", "GET", "My Summary", "My Notes");