在 REST API 中处理用户 Preferences/States

Handling User Preferences/States in REST API

我们开始将我们的网站迁移到基于 REST 服务的系统,并且目前正在开发核心。

在我们当前的设置中,为用户分配了一个或多个 "accounts",用于定义他可以在网站上看到的数据。同一用户在任何时候都只能激活一个帐户。现在我们将所选帐户存储在数据库中并使用它来过滤所有查询。

现在我不确定如何在 REST 环境中正确处理这个问题。我找到的可能解决方案是:

对于我们的设置,每一个都有其优点和缺点。目前我们在我们的网站上使用第三种方法。但是在 REST 环境中处理这种事情的正确方法是什么?

是的,您正在处理的设计相当糟糕,您真正想要做的是将状态从该系统中完全移除。

出于这个原因,第一个选项要好得多:

Sending the requested account with every request

如果这只是一个 ID,有一种非常简单的方法可以做到这一点,只需在所有(相关的)路由/URI 前加上这个帐户 ID。例如:

http://api.example.org/accounts/{id}/...

这样 'state' 通过您正在访问的 url 维护,并且服务器可以不知道该状态。