如果我想让API保持RESTful,实现检查用户名是否已经在客户端注册的最佳方法是什么?

如果我想让API保持RESTful,实现检查用户名是否已经在客户端注册的最佳方法是什么?,rest,api,validation,Rest,Api,Validation,正如标题所示,我希望客户能够在用户提交注册表之前检查用户名或电子邮件是否已经注册。我曾考虑过使用一个API端点,该端点将为给定的用户名返回true或false,但这似乎更像是RPC而不是RESTful。如果我的API的其余部分是RESTful的,那么拥有这样一个端点是否是一种不好的做法?如果是这样的话,RESTful方法会是什么样子?您可以进行POST/注册并返回一个带有验证错误的400数组,然后让客户端逻辑筛选该数组中的无效用户名。换句话说,没有理由不能多次命中端点。这将有助于将用户体验与AP

正如标题所示,我希望客户能够在用户提交注册表之前检查用户名或电子邮件是否已经注册。我曾考虑过使用一个API端点,该端点将为给定的用户名返回true或false,但这似乎更像是RPC而不是RESTful。如果我的API的其余部分是RESTful的,那么拥有这样一个端点是否是一种不好的做法?如果是这样的话,RESTful方法会是什么样子?

您可以进行POST/注册并返回一个带有验证错误的400数组,然后让客户端逻辑筛选该数组中的无效用户名。换句话说,没有理由不能多次命中端点。这将有助于将用户体验与API分离。

REST中的一个关键概念是,任何可以命名的东西都可以是资源;这包括程序。如果您希望有一个端点在请求主体中接受用户名并返回true/false,那么这很好

或者,您可以或可能已经将用户视为资源。以GithubAPI为例:您可以通过向发送GET请求来获取用户。如果用户存在,因此用户名被使用,您将返回200 OK。如果用户不存在,您将得到404 not Found

如果您想检查用户名是否已被使用,您可以发出该用户名的请求,然后检查响应。如果你选择这种方法,头部是更合适的方法。HEAD本质上与GET相同,只是响应主体是空的。因为你不需要身体来判断用户是否存在,你可以通过头部覆盖来节省一点点带宽