通过字段获取资源ID的正确休息方式是什么,例如名称。看看以下操作:
GET /users/mike-thomas
GET /users/rick-astley
我不想在我的API端使用这些操作,而是想编写一个API操作,在提交字段(例如用户的名称)时会获取ID,例如:
GET /users/id-by-field
提交的数据:
{
"fullName": "Mike Thomas"
}
返回数据:
{
"data": {
"id": "123456789012345678901234"
}
}
答案 0 :(得分:2)
您想要的是一个算法网址,其中算法的参数作为网址参数传递:
GET /users?name="Mike Thomas"
优点是您正在使用“root”资源(用户),并且可以轻松扩展搜索参数,而无需更改路由中的任何内容。例如:
GET /users?text="Mike"&year=1962&gender=M
将搜索文本而不仅仅是名称。
结果数据将是用户列表,并且可以返回超过这些用户的标识。除非fullName唯一标识用户,否则无论如何都需要允许。当然,如果参数唯一地标识了该用户,则该列表可以包含单个用户。
{
users: [
{
id: "123456789012345678901234",
fullName: "Mike Thomas",
dateJoined: 19620228
}
, {
id: "234567890123456789012345"
fullName: "Rick Astley",
dateJoined: 19620227
}
]
}