Web applications 票务系统打破了我的REST模式吗?

Web applications 票务系统打破了我的REST模式吗?,web-applications,authentication,rest,rpc,restful-authentication,Web Applications,Authentication,Rest,Rpc,Restful Authentication,因此,在一次访谈中,我问到了什么是做身份验证之类的事情的最RESTful的方式。他们的反应是创建一个票务系统,在那里完成post,并签发票证。然后所有进一步的请求都会随这张票一起发送。我的问题是,我如何以RESTful的方式发送带有每个请求的这个勾号?看起来像: http://www.mysite.com/resource?ticket=ticketnumber 既然我包含了参数,这不是开始得到RPCish了吗?为什么不使用标准的HTTP身份验证方法,而不是发明自己的身份验证方法呢?如果它们不

因此,在一次访谈中,我问到了什么是做身份验证之类的事情的最RESTful的方式。他们的反应是创建一个票务系统,在那里完成post,并签发票证。然后所有进一步的请求都会随这张票一起发送。我的问题是,我如何以RESTful的方式发送带有每个请求的这个勾号?看起来像:

http://www.mysite.com/resource?ticket=ticketnumber

既然我包含了参数,这不是开始得到RPCish了吗?

为什么不使用标准的HTTP身份验证方法,而不是发明自己的身份验证方法呢?如果它们不够或不合适,请将您的凭证或票务信息添加到自定义标题中,而不要用它污染URI


您的URI应该标识您的资源,不多不少。向URI添加元信息或上下文信息会污染它们,并且会使您的系统更难发展,因为您的身份验证机制将直接和永久地耦合到您的资源。相反,将身份验证机制移动到它所属的HTTP头中。

更像
http://www.mysite.com/tickets
(车票列表)或
http://www.mysite.com/tickets/123
(ticket 123)不,我的意思是对资源的请求必须包括ticket一般来说简单是件好事。但纯粹的REST假设世界比实际情况简单得多。对于95%的问题,这并不重要,因为剩下的就足够了。但对于其他5%的人来说,这实在太天真了。另一方面,Web服务可以处理几乎任何有关授权、安全性和状态的情况,但其代价几乎是荒谬的复杂程度。使用REST加上几个参数,你可以很容易地处理这种情况——只要这样做,不要担心“纯度”。@JamesAnderson这正是我想听到的东西。为什么不把它写在一个答案里,这样我就可以投票支持它了?@Kurtis——这更像是一个观点而不是一个答案——所以我认为作为一个评论更合适。另外,我这个月有足够的代表:-}您能提供一个向HTTP头添加自定义数据的代码示例吗?我可以,但这需要一个单独的问题,而不是一个注释。其他人可以找到答案(也可以贡献他们的代码)。