【发布时间】:2015-01-23 12:41:52
【问题描述】:
我正在努力寻找通过 REST 服务捕获审计信息的“正确”方式。假设我有一个用于 Employee 资源的内部 REST API。我想在添加/修改/删除员工时捕获一些东西,例如进行更改的用户、用户正在使用的应用程序、完成时间(假设这可能是异步的,因此用户的操作可能发生在与 REST 调用不同的时间)等。此外,发起更改的用户可能不是进行 REST 调用的经过身份验证的用户。
我的想法是这些属性不属于请求的主体 - 这意味着它们不是 Employee 对象的属性。它们不是可以在 GET 上检索和返回的东西,因此它们不应该在 POST/PUT 中。它们也不属于参数,因为参数应该用于指定有关员工的其他内容或针对员工的 GET 请求的搜索/过滤条件。
我目前的想法是让客户端在 HTTP 标头中指定此信息。这使 Employee 资源的 URL 参数和正文保持纯净。这是对标题的适当使用吗?还有其他我没有看到的选项吗?
【问题讨论】:
标签: rest http-headers restful-architecture audit audit-trail