【发布时间】:2014-01-17 17:42:38
【问题描述】:
我一直在与我的一位同事讨论这样做的最佳方法
这是一个示例场景:
我正在尝试获取 ID 为 1234 的 Customer 的所有订单。
考虑以下端点:
/客户/订单
使用 GET 请求,带有以下标头:
授权:基本 QWxhZGRpbjpvcGVuIHNlc2FtZQ==
使用 Authorization 标头,我们的身份验证机制将此请求识别为 ID 为 1234 的客户,并且我们的服务返回所需的订单。
他试图说服我这是对的,因为登录的客户只会请求他们的订单(在这种情况下,订单属于客户 1234) - 所以传入 ID URL 是不必要的。 但是....对我来说,这不是 RESTful(我可能错了)
在我看来,应该是这样的:
/customer/1234/订单
带表头(以表头为例)
授权:基本 QWxhZGRpbjpvcGVuIHNlc2FtZQ==
通过 Authorization 标头,我们验证用户是否有权检索这些订单...如果是,则返回它们,否则,返回 401
我的问题是,哪个是首选方法?
我当然可以看到第一种方式的好处,但是为了保持我们的 api RESTful,我的心说要采用第二种方式......
【问题讨论】:
-
你最后采用了什么方法?
-
最终使用了带有 auth 标头的方法。效果很好
标签: rest asp.net-web-api restful-authentication restful-url restful-architecture