我正在设计一个restFUL api:
BackboneJS:富客户端应用
我有3个实体:
这是我的实际数据库模式,它接近SQL连接语法,我不知道它是否是最好的方法...
用户
{
"_id": "233e91578810ee8462b33bd1",
"type": "user",
"email": "bill@gmail.com"
"teams": [b6e9157886462b33bd1f2, a6e9157886462b33bd1f6],
}
团队
{
"_id": "b6e9157886462b33bd1f2",
"type": "team",
"users": ["233e91578810ee8462b33bd1", "b8a6462b33bd1fb0068ab"],
"projects": ["456abe54a65b6a5aa5ea63cd", "a5eba546a6edc313avsb068"],
}
项目
{
"_id": "ba5c60ee8462b33bd1fb00684c",
"type": "project",
"team": "b6e9157886462b33bd1fb0068ab",
"users": ["aae9157886462b33bd1fb0068a", "abac5d6c7d99a6c005c26"]
}
我对restFUL api缺乏经验,但是使用这种模式我必须以双向方式更新。
例如:在团队中添加了用户,我必须在团队实体中添加此userID,并且我必须在用户实体中添加teamID。
我也给你我的API路线:
GET api/user/:id -> return user data
PUT api/user/:id -> update user data
GET api/team/:id -> return team data
PUT api/team/:id -> update team data
(我对最后一个问题有疑问,因为有不同的更新可能性, addUser,removeUser ,当调用GET ROUTE时,我必须知道哪种更新是为了以双向方式更新
答案 0 :(得分:1)
您可以使用DELETE:
js/Topbar.js
它可以是RESTful而不必“删除”任何东西,例如它可以设置删除标志。
此外,任何GET路由都应该是幂等的,这意味着如果数据被访问一次或多次,它就无法操纵或损害数据。
至于做插入,通常你只想使用POST:
DELETE /api/team/:id -> remove team data
您可以使用PUT或PATCH进行更新,但我一直倾向于PUT,因为PATCH与某些版本的Internet Explorer不兼容。