假设我有两个资源,用户和项目,例如
adb shell am kill <application_id>
我想存储用户何时访问某个项目的记录(哪些项目可以访问每个用户)。以REST方式执行此操作的正确方法是什么。
我可以做这样的事情
api/users
api/items
而不是GET请求并检索项目并创建视图记录。或者在api / items / 1上使用GET请求,然后依靠客户端调用另一个api方法来添加视图记录。但这些方式感觉不对。
是否建议以REST方式执行此类操作?
答案 0 :(得分:2)
我很好奇为什么你想要一个审计功能,例如存储谁将查看记录作为外部REST API调用......
我认为最简单的REST API是访问像https://{url}/api/items/{id}?token={something_from_authentication_call}
这样的GET请求,假设您已经对用户进行了身份验证并为他们提供了一个用于所有调用的令牌。
然后,由于您在内部维护一个令牌到用户的关联,让后端服务将审计数据直接写入数据库,或者调用一些其他未暴露给外部世界的内部服务来创建审计数据
答案 1 :(得分:1)
在调用REST之前不要使用身份验证吗?通常,用户在调用REST之前和之后进行身份验证,您知道谁正在呼叫。 如果您没有身份验证,则可以使用任何将user作为body参数或请求标头传递的方法。