RESTful规范中,隐藏文章应该使用哪种路由?

请尝试在评论区里写下答案(如不能清楚表述,那么你可能没真正理解)。欢迎参与,为下一次求职做准备。

此题是我遇到的面试题,我没有对其选项进行更改,有可能这个题本身就有问题。

按照RESTful的规范,修改文章的展示隐藏应该使用哪一种路由?

  • POST /article/{id}/hidden
  • PUT /article/{id}
  • PATCH /article/{id}
  • PUT /article/{id}/hidden
讨论数量: 6

PATCH /article/{id}/hidden 这个吧

1年前 评论

首先这个4个选项中的 URI 均有问题:

  1. article 应该是复数形式 articles
  2. 应该携带版本号 /v1/article/{id}

以下答案我认为是正确的:

PUT /article/{id}
{
    "status": "hidden",
    "title": "标题",
    "other": "..."
}
PUT /article/{id}
{
    "hidden": 1,
    "title": "标题",
    "other": "..."
}
PUT /article/{id}/hidden
1
PATCH /article/{id}
{
    "hidden": 1
}
PATCH /article/{id}
{
    "status": "hidden"
}
1年前 评论
小学毕业生 1年前
woodong (作者) (楼主) 1年前

这个 PATCH /article/{id}

根据 RESTful API 的设计原则,应该使用 HTTP 请求方法来表示对资源的操作,而不是在 URL 中添加参数或标识符来表示操作类型。因此,在修改文章的展示隐藏状态时,应该使用 PUT 或 PATCH 请求方法,并将需要更新的文章展示隐藏状态等信息放在请求体中,而不是在 URL 中添加 hidden 参数。

例如,可以使用以下的路由:

PUT /articles/:id
PATCH /articles/:id

其中,:id 表示文章的唯一标识符,PUT 和 PATCH 请求方法的区别在于,PUT 请求需要将整个文章资源替换为新的内容,而 PATCH 请求只需要更新部分字段即可。

在请求体中,可以包含需要更新的文章展示隐藏状态等信息,例如:

{
  "hidden": true
}

需要注意的是,在使用 RESTful API 设计时,应该遵循统一接口、资源标识、自描述消息、超媒体等原则,并根据实际情况进行权衡和选择。同时,在设计路由时也需要考虑易用性、可维护性和可扩展性等方面的问题,并进行优化和调整。

7个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!