这是有效的RESTful API架构,我应该真正使用角度资源吗?

时间:2015-11-05 19:48:55

标签: angularjs rest restful-architecture angular-resource

首先:这完全是出于学习目的,我知道我可以以任何我喜欢的方式设计我的API,而且我不必遵循REST架构100%。好的,等等问题:

我有一个(私有)REST(ish?)API,我正在使用角度应用程序。 API现在有这些端点:

会话:

GET /api/session //Getting the user's session information after a page refresh
DEL /api/session //Logging out

用户

GET /api/user/:id
POST /api/user
DEL /api/user/:id
PUT /api/user/:id

POST /api/user/:id/friendrequest //"Creating" a friendrequest to a user
POST /api/user/:id/groupinvite   //"Creating" a groupinvite to a user

组:

GET /api/group/:id
POST /api/group
DELETE /api/group/:id
PUT /api/group/:id

DELETE /api/group/:id/users/:user //Deleting a user from a group
GET /api/group/:id/users          //Get all users in a group

POST /api/group/:id/joinrequest   //"Create" a request to join a group

现在我有几个问题:

我认为这里的所有内容都应该是RESTful,除了我不确定的两件事:

  • 端点只能处理一个HTTP动词吗?例如 / api / user /:id / friendrequest只处理POST,因为它不应该 可以编辑,删除或获取所有的好友请求。

  • / api / session不会在网址中包含任何参数,因为它 始终返回登录用户的会话。我知道这打破了 / resource /:id pattern,但我看不到任何其他方法来组织它 哪个是必需的。

另外,正如您所看到的,其中一些资源是嵌套的,而角度资源处理嵌套资源的方式真的丑陋(或者我做错了什么?)。是否有任何理由不使用$ http编写我自己的服务,而不是花费更多的时间和代码?我宁愿不使用像RESTangular这样的第三方模块。

0 个答案:

没有答案