宁静服务的路由策略

     2023-03-31     130

关键词:

【中文标题】宁静服务的路由策略【英文标题】:Routing strategy for a restful service 【发布时间】:2013-10-10 16:40:33 【问题描述】:

我们正在开发一个使用 Web-API 的 restservice,并在思考要遵循的路由策略。

我们得到了一些资源:

成绩 消息 家庭作业

(附带说明:我们计划使用 Hateoas 在资源之间建立链接。)

我们正在考虑 Controller[Action][Id] 导致

API\Grade[?personid] (GET/POST)

API\Grade\id[?personid] (GET/PUT/DELETE)

API\Grade\Lastgrades\days[?personid] (GET) 

或者使用上下文

API\Student\Grade (GET)

API\Student\Grade\id (GET)

API\Student\Grade\Lastgrades\days (GET)

AND

API\Parent\Student\id\Grade (GET)

API\Parent\Student\id\Grade\id (GET)

API\Parent\Student\id\Grade\Lastgrades\days (GET)

AND

API\Teacher\Student\id\Grade (GET/POST)

API\Teacher\Student\id\Grade\id (GET/PUT/DELETE)

API\Teacher\Student\id\Grade\Lastgrades\days (GET)

是否有充分的理由使用一种策略而不是另一种?

【问题讨论】:

【参考方案1】:

在您的第一个选项中,重点是成绩,这是 API 旨在管理的资源。 在您的第二个选项中,只需查看 URL 模式,就会涉及更多资源,例如教师和学生。

在不真正了解您的业务用例的情况下,您的问题的答案更多地与您的 API 的初始范围有关。 如果它只关注成绩而不是教师或学生,那么您可以只提供 API 来管理“成绩”资源,这意味着您的选项 1。

稍后如果您还需要管理“教师和学生”,您可以将选项 2 添加到您的实施中。

它们不必相互排斥。

更新-1

角色/上下文不应是 URL 的一部分。它应该像每个角色登录到系统后一样单独处理;应该已经有方法与后端中的角色相关联,例如通过会话等。

URL 设计的重点应该放在资源上,在本例中是成绩。另外,从逻辑上讲,成绩应该与学生相关联,甚至与学生所学的课程相关联,我建议将其设计如下

/api/v1/grades/students/[student-id]/

/api/v1/students/[student-id]/grades/

/api/v1/students/[student-id]/classes/[class-id]/grades/

这些都是可接受的解决方案,根据您的业务用例,一个可能比另一个更好。

这些角色仅在 CRUD operations 可以对这些资源采取行动时发挥作用,例如教师可以 POST/PUT/GET on

/api/v1/students/[student-id]/grades/

但是学生/家长只能做 GET on

/api/v1/students/[student-id]/grades/

您仍然需要将角色/上下文视为整体设计的一部分,并且根据您希望如何支持每个角色将使用 URL 来管理资源的操作,URL 设计可能更有意义。但“上下文/角色”不应该是 URL 的一部分。

【讨论】:

嗨,明,我给出的例子是关于成绩的。只有几个角色有等级。学生只能查看他们(自己的)成绩。这些学生的家长也可以查看这些成绩。但是,教师可以对成绩进行 CRUD。在选项 1 中,我让每个角色都指向同一个端点。选项 2 取决于角色上下文。 刚刚更新了答案。本质上,角色/上下文不应该是 URL 设计的一部分。 谢谢,这是有道理的

宁静的网络服务 415

】宁静的网络服务415【英文标题】:Restfulwebservice415【发布时间】:2019-05-2508:41:02【问题描述】:@RestController@RequestMapping(value="/uri",produces="application/json",consumes="application/json")publicclassVisitorServiceVisitorDAOvis=newVisitorD 查看详情

设计一个宁静的服务

】设计一个宁静的服务【英文标题】:DesginingaRestfulservice【发布时间】:2013-06-0821:36:08【问题描述】:假设我正在设计一个Restful服务,它给定2个整数编号返回它的总和。在这种情况下,没有要读取、创建、更新或删除的资源。... 查看详情

使用按钮单击调用宁静的服务

】使用按钮单击调用宁静的服务【英文标题】:Callrestfulserviceusingbuttonclick【发布时间】:2017-11-2307:35:59【问题描述】:我希望通过单击我的Web应用程序的按钮调用get函数我的应用程序中的代码是protectedvoidbtngetbtanches_Click(objectsend... 查看详情

Quarkus HTTPS 宁静服务

】QuarkusHTTPS宁静服务【英文标题】:QuarkusHTTPSrestfulservice【发布时间】:2019-08-3011:39:16【问题描述】:有没有使用quarkus.io构建和配置TLS安全的restful服务的示例/教程?很遗憾,我在quarkus文档中也找不到,这里没有。【问题讨论】... 查看详情

使用 OKHttp 获取我的宁静服务响应 null

】使用OKHttp获取我的宁静服务响应null【英文标题】:getmyrestfulserviceresponsenullbyusingOKHttp【发布时间】:2016-12-1307:51:54【问题描述】:我是android新手,我的服务响应为空,但服务URL在浏览器中运行正常。当我运行我的应用程序屏... 查看详情

wcf 宁静服务中的长时间计算

】wcf宁静服务中的长时间计算【英文标题】:Longcalculationinawcfrestfulservice【发布时间】:2012-06-2822:34:48【问题描述】:我有一个WCFRESTful服务,它工作正常,问题是该服务公开了一个“计算”方法,可能需要几分钟才能完成计算,... 查看详情

ACID 如何在宁静的微服务架构中工作

】ACID如何在宁静的微服务架构中工作【英文标题】:HowACIDworksinarestfulmicro-servicearchitecture【发布时间】:2019-02-0112:31:33【问题描述】:我在实现微服务架构方面还很陌生,这个问题让我大吃一惊微服务架构如何解决不同端点调用... 查看详情

思科策略路由pbr详解

...路由器的负载平衡或根据总流量在各线上进行报文转发的服务质量(QoS)。802.1p优先级VLANID源/目的MAC地址源/目的的IP地址(包括IPMASK部分)TCP/UDP源/目的端口号IP优先级DSCP的优先级IP的协议类型字段路由器通过两条不同的链路连... 查看详情

“/literal/param/literal”是 WCF 宁静服务的有效 url 模板吗

】“/literal/param/literal”是WCF宁静服务的有效url模板吗【英文标题】:Is"/literal/param/literal"avalidurltemplateforaWCFrestfulservice“/literal/param/literal”是WCF宁静服务的有效url模板吗【发布时间】:2020-07-2805:23:40【问题描述】:我正... 查看详情

无法获得 WCF 宁静服务以使用 https/ssl

】无法获得WCF宁静服务以使用https/ssl【英文标题】:CannotgetWCFresfulservicetousehttps/ssl【发布时间】:2015-08-1117:41:48【问题描述】:我知道过去曾有过这个问题的答案,但是在经历了很多之后我仍然遇到问题,所以我希望有人可以查... 查看详情

华为usg6320做双线-基于源地址的策略路由

...电信的光纤,分别为静态光纤和拨号光纤,前者主要用于服务器,后者则用于一般办公。需求如下:    静态光纤:服务器专用    拨号光纤:常用办公基于源地址的策略路由如下(下图从华为教材处截来,只作参考)... 查看详情

宁静的 Web 应用程序安全性

】宁静的Web应用程序安全性【英文标题】:Restfulwebapplicationsecurity【发布时间】:2013-05-0619:25:41【问题描述】:我想知道我的网络应用程序的安全性。我有两个问题,希望你能帮我解答一下我正在使用一个游戏框架(支持休息)... 查看详情

路由策略与策略路由的区别。

...为了控制网络流量的可达性或调整网络流量的路径:一、路由策略。(Route-Policy)路由策略是通过修改路由表的路由条目来控制数据流量的可达性。即对接受和发布的路由进过滤。这种方式称为路由策略。二、策略路由。(Traffi... 查看详情

策略路由

策略路由是一种依据用户制定的策略进行路由选择的机制。通过合理应用策略路由技术,路由器可以根据到达报文的源地址,报文长度等信息灵活地进行路由选择。与单纯依照IP报文的目的地址查找路由表进行转发不同,策略路... 查看详情

ros里的路由策略和策略路由的区别和联系

路由策略Route-Policy:(比如ROS里的路由表)路由策略是通过修改路由表的路由条目来控制数据流量的可达性。即对接收和发布的路由进行过滤,基于路由表转发。策略路由PolicyBase-Route:(比如ROS里的mangle就是策略路由)策略路... 查看详情

策略路由和路由策略

1、概括来说,路由策略是路由发现的规则,策略路由是数据包转发的规律。2、由于转发在底层,路由在高层,所有策略路由的转发优先级比路由策略要高。3、我们知道路由器中存在两种类型和层次的表,一个是路由表(routing-t... 查看详情

usg5530策略路由修改后所引起的故障排除

...爆发。故障排查:不能上网电脑ping网关正常,ping外网DNS服务器不通,然后tracert-d外网DNS服务器,发现路由跳转到移动线路上了,然后就无法连通电信的DNS服务器了。原因分析:一、在USG5530中删除一条规则后,原应用的端口即删... 查看详情

路由策略策略路由

路由就是报文在转发过程中的路径信息,用来指导报文转发路由可划分为:网段路由、主机路由、直连路由、间接路由把最优的路由放到FIB(forwardinginformationbase),通过它指导报文转发路由策略是为了改变网络流量所经过的途径... 查看详情