我想创建一个作为查询服务前端的端点,并且我想支持这样一种场景,即可以通过查询字符串参数将任意数量的参数传递到服务中。
这是我想要的那种 URL:
/queries/MyQuery?argument1=value&arg2=value
Dictionary<string, object>
DTO对象结构本身相当简单(属性如 这是否可以通过 RouteAttribute 实现,还是我需要转向另一个方向?
我想创建一个作为查询服务前端的端点,并且我想支持这样一种场景,即可以通过查询字符串参数将任意数量的参数传递到服务中。
这是我想要的那种 URL:
/queries/MyQuery?argument1=value&arg2=value
Dictionary<string, object>
DTO对象结构本身相当简单(属性如 这是否可以通过 RouteAttribute 实现,还是我需要转向另一个方向?
这是一个很好的答案,解释了 ServiceStack 中的路由。
只有PathInfo是路由的一部分,所有路由/服务上的请求 DTO 也会根据 QueryString/FormData 等上的请求参数自动填充。
因此,如果您知道 QueryString 将是什么,您只需将其作为属性添加到请求 DTO 上,它们就会自动填充。
如果您不知道它们是什么,但您仍想访问 QueryString,您可以从base.Request
Service 中的属性中获取它,例如:
class MyServices : Service
{
public object Get(MyQuery request)
{
foreach (var entry in base.Request.QueryString) {
...
}
}
}