【发布时间】:2016-12-02 22:46:55
【问题描述】:
我正在尝试按照 HTTP 方法语义创建一个 REST API,但我被 DELETE 方法卡住了。
在我的用例中,该服务位于对用户进行身份验证的网关后面。此服务使用 SSO 令牌,然后用于对用户进行身份验证并获取他的详细信息。从这一点开始,我正在尝试调用我的服务,在该服务中我使用要删除的资源的 id 作为路径变量,但是我不知道如何传递用户的 id 进行验证。
我已经阅读了很多关于将主体添加到 DELETE 方法的问题的帖子。我还认为添加自定义标题来识别用户不是正确的方法。在我拥有的选项中,我认为只有 2 个是明智的:
- 以用户 ID 作为正文发出 POST 请求。我不喜欢这个,因为我基本上将 POST 与已识别的资源一起使用,而且我在语义上听起来是错误的。
- 发出请求,使用户 ID 成为路径变量。它看起来像这样。路径/到/服务/resourceId/{resourceId}/userId/{userId}。我的问题是在 POST 和 PUT 请求中,userId 是正文的一部分。 API 看起来不一致,但我想我仍然可以更改其他 2 个,因此用户 ID 也是 url 的一部分。
有什么建议吗?
【问题讨论】:
标签: java rest http authentication http-method