ServiceStack:路由和参数

时间:2013-01-02 20:28:55

标签: routes servicestack

上个月刚刚发现了ServiceStack,我非常喜欢使用这个伟大的框架。真的厌倦了WCF设置和静态方法原型设计!

我有一个问题!

我创建了一个类:允许使用以下路径显示一个事件或事件列表的事件:

[Route("/events")]
[Route("/events/{Id}")]
public class Event
{
    public ushort Id { get; set; }   
    public string FromDate { get; set; }
    public string ToDate { get; set; }
}

但我还想使用相同的路线列出2个日期之间的事件。 实际上路由只使用Id作为参数,但我想添加另一个指定FromDate的路由: 我认为这样的事情会起作用:/ events / 01-01-2012 / 10-01-2012 为了获得2个日期之间的所有事件,但它不起作用。

是否可以定义允许根据不同参数定义不同路线的路线(取自DTO)?

我是管理路线的新手,并且非常想知道如何根据不同的参数定义不同的过滤方式。

感谢您的帮助!令人敬畏的工作Demis!

2 个答案:

答案 0 :(得分:5)

[Route("/events/from/{FromDate}/to/{ToDate}")]怎么样?

虽然我目前的思维方式会将它们分成两个请求

[Route("/events/{Id}")]
public class GetEventById
{
    public ushort Id { get; set; }
}

[Route("/events/between/{FromDate}/{ToDate}")]
public class GetEventsBetweenDates
{   
    public string FromDate { get; set; }
    public string ToDate { get; set; }
}

答案 1 :(得分:0)

在我的OnGet()函数上,我想确定参数是否设置为NULL。 当我添加一个'?'除了请求数据类型,我在尝试访问我的服务时遇到了“错误请求”异常。

这是否意味着所有REQUEST参数对于字符串为空,对于数字为0,对于日期等为01-01-000,这是我应该在我的OnGet上测试以确定输入Querystring参数的值?