是否有一种标准方法来处理REST资源中的密码

时间:2016-01-06 20:58:27

标签: api rest

想象一下,我们有一个REST服务,它有一个包含密码(或其他一些敏感信息)的资源。一旦设置了密码,我们永远不想通过API返回它(在设置之后,只有一些外部系统会使用它,我们可能只存储密码的哈希值等)。

所以我们有一个PUT / POST请求,它在一个带有密码的资源中发送。 GET请求应该返回什么?我可以想到几个可能的解决方案:

  1. GET可以返回相同的资源,但没有密码字段(感觉 奇怪,因为密码是PUT / POST的有效字段,所以为什么不呢 GET)

  2. GET可以返回资源,但密码字段为空或 设置为某个任意值。

  3. 从资源中删除密码,并拥有子资源。 例如资源/密码,我们可以输入密码,但不允许GET请求。

  4. 这似乎是一个相当普遍的问题,但我似乎找不到一个好的,标准的解决方法。大多数搜索结果都指向访问API的用户的实际密码,并重置这些密码,这不是这里的情况。有没有共同的,完善的方法来处理这种情况?

1 个答案:

答案 0 :(得分:0)

您可以POST / PUT数据,而不是在回复或GET中将其返回。 我的选择是#1返回没有字段的资源。 也可以使用#2并对该字段进行模糊处理。