是否必须指定所有路由以符合rest api?

是否必须指定所有路由以符合rest api?,rest,Rest,我目前正在处理一个不应删除某些集合项的项目。我是否必须指定所有方法(/GET、/POST、/PATCH、/DELETE)以符合rest api?或者我可以绕过那些我不需要的文件。首先,状态代码404未找到-表示未找到文档,api端点不是文档 第二,根据调查,他们建议使用未实施的状态代码501。 服务器不支持实现所需的功能 要求当服务器没有响应时,这是适当的响应 识别请求方法,但无法为其提供支持 任何资源。(c) 维基百科 服务器要么无法识别请求方法,要么缺少 满足要求的能力 所以,至少我个人是这

我目前正在处理一个不应删除某些集合项的项目。我是否必须指定所有方法(/GET、/POST、/PATCH、/DELETE)以符合rest api?或者我可以绕过那些我不需要的文件。

首先,状态代码404未找到-表示未找到文档,api端点不是文档

第二,根据调查,他们建议使用未实施的状态代码501。

服务器不支持实现所需的功能 要求当服务器没有响应时,这是适当的响应 识别请求方法,但无法为其提供支持 任何资源。(c) 维基百科

服务器要么无法识别请求方法,要么缺少 满足要求的能力

所以,至少我个人是这样做的,如果我不想让用户删除完整的用户集合(例如),我要么给501状态码,要么给403,如果管理员用户可以删除所有其他用户,而普通用户不能

因此,对于用户api,可以使用此状态代码

  • GET/api/v1/user->200(列出用户)
  • POST/api/v1/user->201(例如,创建新用户,管理员可以这样做)
  • GET/api/v1/user/{{userID}}->200/404(获取其中一个用户的配置文件,如果找不到用户,则获取404)
  • PUT/PATCH/POST/api/v1/user/{{userID}}->204(因为这里不需要返回更新了概要文件的响应-我们假设客户端已经知道概要文件)
  • 如果管理员删除其中一个用户,则删除/api/v1/user/{{userID}->200;如果找不到用户,则删除404;如果普通用户试图删除另一个用户,则删除403
  • DELETE/api/v1/user/->501(删除所有用户非常引人注目,这正是我们正在讨论的情况。但最好向api用户解释,该端点存在,并且没有实现,返回404表示文档不存在,但端点!=文档)

你所说的“指定所有路由”是什么意思?
GET
POST
等都是方法。如果路由只需要某些方法或对某些方法有意义,那么只为这些方法定义它(我想这就是你所说的“旁路”)。对不起,我的方法不好。这正是我的意思。老实说,我对不同的人教授这些概念感到迷茫,因为他们总是将所有方法添加到路由中。因此,据我所知,只实现所需的方法或至少发送状态代码501(不受支持的方法)总是可以的,这是一个额外的步骤,对吗?是的,如果methodod实现为只发送501的几乎为空的代码,它可以在将来实现,同时不会破坏与正在开发的api客户端的兼容性