Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Url 针对登录用户特定资源的良好URI设计_Url_Rest_Web - Fatal编程技术网

Url 针对登录用户特定资源的良好URI设计

Url 针对登录用户特定资源的良好URI设计,url,rest,web,Url,Rest,Web,我希望建立一个遵循RESTful架构的网站。在我的网站中,每个用户都有一个永久用户名,可以管理自己的设置。对于设置资源,我在两种URI设计之间左右为难 选项1:/users/{username}/settings 这是一个通用的设置资源URL模式。只有已登录的用户才能对其特定设置资源执行获取/放入操作。但这相当复杂,因为其他特定于用户的资源需要遵循这一原则。它简化了管理员身份验证,管理员身份验证可以访问所有用户(或至少部分用户)的所有设置 选项2:/my/settings 当前登录用户的设置资源

我希望建立一个遵循RESTful架构的网站。在我的网站中,每个用户都有一个永久用户名,可以管理自己的设置。对于设置资源,我在两种URI设计之间左右为难

选项1:/users/{username}/settings

这是一个通用的设置资源URL模式。只有已登录的用户才能对其特定设置资源执行获取/放入操作。但这相当复杂,因为其他特定于用户的资源需要遵循这一原则。它简化了管理员身份验证,管理员身份验证可以访问所有用户(或至少部分用户)的所有设置

选项2:/my/settings

当前登录用户的设置资源的URL。编程要简单得多,但URL并没有真正指定它真正是哪种资源。“/my”部分变成了“/users/{username}”的别名


几乎所有网站都采用与选项2类似的方法。你们觉得怎么样?

为什么不两者兼得呢?您的/my可能只是重定向到/users/{myusername}/
这样,您可以在UI中使用/my,但是您的管理员用户可以通过实际的/users/{username}控制器编辑每个用户设置。这绝对是一个两全其美的场景。作为重定向是否更好?我可以将其实现为一个别名,在响应的contentlocation标题下指定一个规范URL。