根据本指南 https://hackernoon.com/restful-api-designing-guidelines-the-best-practices-60e1d954e7c9在设计 REST API 端点时,我们永远不应该在 URL 中使用动作/动词(例如/addNewEmployee
),如果我们想要执行一个操作,我们应该只使用带有相应资源/名词的 HTTP 动词(例如POST /employees
).
现在,我有一个名为themes
,我围绕它创建了以下端点:
GET /themes
(列出所有主题)
GET /themes/:name
(列出具有给定名称的单个主题)
我想创建另一个端点,通过它我可以执行一个操作(即切换主题),这个操作将会改变current_theme
字段值在Settings
数据库中的表。我不确定做到这一点的最佳实践是 REST API 时尚,并且对消费者来说也是直观的。
我可以做这个POST /themes/changeTheme
or PUT /themes/:name/activate
但再一次changeTheme
and activate
是动词。我也可以这样做PUT /settings
但从 API 消费者的角度来看,这似乎并不直观。请指导我在这种情况下应该如何进行。
我知道这是一个老问题,但我只是想补充一些内容。
我想创建另一个端点,通过它我可以执行操作(即切换主题),此操作将更改数据库中设置表中的 current_theme 字段值。我不确定做到这一点的最佳实践是 REST API 时尚,并且对消费者来说也是直观的。
如果您阅读了bold仔细部分,它改变了一些东西(current_theme
) 在里面Settings
资源,而不是Theme
本身。
在我看来,Theme
不应该担心是否是active
主题与否。
考虑到这一点,我将其设计为:
PUT /settings/current-theme
{"themeId": "<some-id>"}
而且我认为它足够直观。
-
PUT
说这是更新,
-
/settings/current-theme
说正在更新currentTheme
的财产Settings
资源,以及
- the
Body
为属性提供新值
当然你可以有PUT /settings/:id/current-theme
如果您从其他资源池中选择该资源。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)