我正在开发一个主要用asp.net和Javascript编写的网站,我在它上面使用了大量的ajax来从SQL数据库中检索和显示信息。
要执行所有这些操作,我使用Web API作为执行服务器相关任务的通信路径。
我的网站上有很多地方我只想显示某些信息。例如,我可以使用以下路线:api / customers / orders / order / 5
这将检索订单#5的数据。但是,如果我网站上的某些地方只需要显示订单号或订单说明或什么?如果我想更多地过滤数据库,或者只显示具有特定信息的订单,会发生什么。通过使用上面的URL,它会将有关订单的所有内容返回给Web浏览器,似乎有点不必要。
如果我对不同的过滤器有多种需求,那么我就不会理解路由是如何工作的,因为有些位是可选的。
任何建议都将不胜感激!或者也许我错过了什么!
由于
答案 0 :(得分:1)
您可以执行以下操作。您可以创建请求过滤器,如下面链接中指定的那样。
public class RequestFilterAttribute : Attribute, IHasRequestFilter
{
#region IHasRequestFilter Members
public IHasRequestFilter Copy()
{
return this;
}
public int Priority
{
get { return -100; }
}
public void RequestFilter(IHttpRequest req, IHttpResponse res, object requestDto)
{
var query = req.QueryString["q"] ?? req.QueryString["query"];
var limit = req.QueryString["limit"];
var offset = req.QueryString["offset"];
var user = requestDto as QueryBase;
if (user == null) { return; }
user.Query = query;
user.Limit = limit.IsEmpty() ? int.MaxValue : int.Parse(limit);
user.Offset = offset.IsEmpty() ? 0 : int.Parse(offset);
}
#endregion
}
.Net WebAPI URI convention for advanced searching /filtering