我正在实现一个RESTful服务,这个服务将被Dojo框架的RestStore所使用,这将允许将服务绑定到各种小部件,比如交互式网格或类型超前的ajax选择。需要HTTP标头的REST服务的推荐模式?
RestStore
想要发送和接收HTTP Range
和Content-Range
标题,以便将查询的结果限制为特定的子范围。
什么是ServiceStack(新API)中作为服务的一部分对HTTP头作出反应的最佳实践模式?通常,像Get
这样的服务方法不能访问HTTP头,除非我错过了一个备用API。
,我看到的当前方法是执行像
public class RangeSupporter : Attribute, IHasRequestFilter, IHasResponseFilter
一个属性,其将解析请求上的标头,和写入响应的标头。 DTO将被标记为这个过滤器。
过滤器将传递值,比如说'First'和'Last'进出DTO。但是,要知道,DTO甚至有这样的属性,就必须有像
interface IHasRangeSupport {
int First { set; get; }
int Last { set; get; }
int Total { set; get; }
}
一些标记接口,使得过滤器可以将信息传输进出DTO的类似代码:
var r = request as IHasRangeSupport;
if (r != null) {
/// Access the DTO attributes for the range parameters
}
这似乎是很多仪式,而且很尴尬的实现。
实现REST服务时,是否有更好的访问HTTP标头的模式?
在我的特殊用例中,不需要支持非REST端点(如SOAP)。只有HTTP端点很重要。
啊,没有的示例代码只见表明 - 将是非常,非常有帮助! – SAJ14SAJ 2013-02-27 17:35:41
很高兴帮助。如果此答案确实解决了您的问题,请将其标记为“接受答案”,以便其他人也可以找到解决方案。 – paaschpa 2013-02-27 17:59:32
我会一旦我测试过 - 注意我的代表跨网站:-)我知道如何玩游戏:-) – SAJ14SAJ 2013-02-27 18:04:13