首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >路由映射REST的“正确”方法

路由映射REST的“正确”方法
EN

Stack Overflow用户
提问于 2014-06-04 11:50:41
回答 1查看 1.2K关注 0票数 1

我在做一个小的节点/角度应用程序

超级管理员应该能够在直接从节点应用程序传递的视图中创建/编辑/删除新的客户端帐户。

另一方面,客户端通过that和节点应用程序提供的REST与后端/数据库进行通信。客户端需要用户名/密码才能登录到他们的帐户。

问题:我有这个路线图,我认为:客户端需要在REST的URL中,这样后端知道要获取哪些数据吗?

在url中表示它是一个变量..。

代码语言:javascript
复制
Route map Superadmin

/admin/client – POST
/admin/client/:id – GET
/admin/client/:id – PUT
/admin/client/:id – DELETE
/admin/clients – GET


Route map API JSON

/v1/:client/candidate – POST
/v1/:client/candidate/:id – GET
/v1/:client/candidate/:id – PUT
/v1/:client/candidate/:id – DELETE
/v1/:client/candidates – GET

/v1/:client/settings – GET
/v1/:client/settings – PUT
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-04 16:38:54

我认为这是有点难回答,因为它会说一种方式是“对”,另一种方式是“错”,而实际上可以有多种方法来解决这个问题。下面是我要说的,关于如何构造API端点。

如果我们特别关注这些API端点:

代码语言:javascript
复制
/v1/:client/candidate – POST
/v1/:client/candidate/:id – GET
/v1/:client/candidate/:id – PUT
/v1/:client/candidate/:id – DELETE
/v1/:client/candidates – GET

/v1/:client/settings – GET
/v1/:client/settings – PUT

在这里,我们有一组API,允许用户查找和执行针对特定client的资源的操作。在这样做的过程中,您基本上已经打开了它,允许任何人访问任何人的数据(直到添加安全性)。构建这样的API对于像您在问题中描述的“超级管理员”会更有用,因为它需要在整个一天中访问多个客户端配置文件。但是,正如您可能想象的那样,您需要将对这些端点的访问仅限于那些拥有“超级管理员”访问权限或实际上是客户端本身的人。

如果这些API端点的主要用例是为客户端服务,我将移除:client参数:

代码语言:javascript
复制
/v1/candidate – POST
/v1/candidate/:id – GET
/v1/candidate/:id – PUT
/v1/candidate/:id – DELETE
/v1/candidates – GET

/v1/settings – GET
/v1/settings – PUT

因为您提到客户端需要登录才能访问这些API,所以您已经知道客户机在发出请求时是谁了。相反,您可以从请求中查找客户端,并根据调用对象访问这些资源。就我个人而言,我认为这会使事情变得更容易理解,因为请求总是询问我的数据,而不是一些“客户端”数据,然后您需要验证它们是否有访问权限。

但是,这也是基于您如何架构您的应用程序、用例是什么、谁将访问系统等等。将"superadmin“API与我前面描述的普通”客户端“API分开可能是有意义的,或者最好将它们全部放在一起。最终的答案可能是从长远来看更容易理解和维持。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24036632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档