在RESTful API设计中,它必须通过Id获取吗?

在RESTful API设计中,它必须通过Id获取吗?,api,rest,Api,Rest,在标准的RESTful API中,我们通常让API/users返回资源的所有记录,并让GETid API/users/{id}返回一条记录 但有时,我们希望获得一条记录,但不是通过Id。例如,GetByNameusername或GetByEmail 我们当然不想调用api/用户来返回所有内容并过滤掉客户端需要的记录 一些开发人员实现了多个API点,如: api/users/byname/{username} api/users/byemail/{email} 这是一种好的做法吗?或者有更好的、

在标准的RESTful API中,我们通常让API/users返回资源的所有记录,并让GETid API/users/{id}返回一条记录

但有时,我们希望获得一条记录,但不是通过Id。例如,GetByNameusername或GetByEmail

我们当然不想调用api/用户来返回所有内容并过滤掉客户端需要的记录

一些开发人员实现了多个API点,如:

api/users/byname/{username}
api/users/byemail/{email}

这是一种好的做法吗?或者有更好的、更RESTful的方法来实现这一点吗?

我正在开发我的第一个RESTful API,所以我认为我无论如何都不是专家,但我相信通常情况下,您的端点应该是这样的

api/users?email="me@me.com"

如果你有一个索引视图,你只需发送它的参数

,根据对REST的限制,例如维基百科,api/users/byemail/{email}实际上没有什么是无保留的。我敢说有些人甚至会声称电子邮件地址就是一个ID。