ServiceStack请求具有可变数量属性的DTO

时间:2012-09-14 23:33:18

标签: servicestack

我想创建一个端点作为查询服务的前端,我想支持一个场景,可以通过查询字符串参数将任意数量的参数传递给服务。

这是我想要的那种网址:

/queries/MyQuery?argument1=value&arg2=value

DTO对象结构本身相当简单(Dictionary<string, object>之类的属性),但我仍然坚持路径应该是什么样子。这可能是通过RouteAttribute还是我需要转向另一个方向?

1 个答案:

答案 0 :(得分:3)

这是解释Routing in ServiceStack的好答案。

只有 PathInfo 是路由的一部分,所有路由/服务上的请求DTO也会根据QueryString / FormData等上的请求参数自动填充。

因此,如果您知道QueryString将是什么,您可以将其添加为Request DTO上的属性,它们将自动填充。

如果你不知道它们是什么,但你仍然想要访问QueryString,你可以从你服务的base.Request属性中获取它,例如:

 class MyServices : Service 
 {
     public object Get(MyQuery request) 
     {
        foreach (var entry in base.Request.QueryString) {
            ...
        }
     }
 }