怎样用通俗的语言解释什么叫 REST,以及什么是restconf restful区别

restful什么意思及同义词
沪江词库精选restful是什么意思、英语单词推荐、用法及解释、中英文句子翻译、英音发音音标、美音发音音标。
英音 [ 'restful ] ; 美音 [ 'restful ] 副词 给人休息的,平安的,安静的
词形变化:副词:;名词:。
同义词:,。
For he spake in a certain place of the seventh day on this wise, And God did rest the seventh day from all his works.
论到第七日,有一处说,到第七日神就歇了他一切的工。
The trees are at rest.
树木静止不动。
The defence rests.
被告陈述完毕.
A restful nap
恢复疲劳的小睡
Supreme authority rests with the people.
最高权力属于人民。
The right to rest and vacation
休息休假的权利、
Trecline,as for rest.
躺卧躺下;斜倚,例如休息时
卧床不起;不出门;不想起床
懒惰地闲憩;懒洋洋地躺卧
R depend on
为..所支持
affording or marked by rest or repose
n. 餐馆负责人
n. 餐馆老板
1.[C]餐厅,饭馆,饭店
n. 再声明,重述
2017restful是什么意思由沪江网提供。restful设计风格来自:
日分享至 :
RESTfulRESTful的命名有什么讲究?推荐回答:RESTful只是一种API的设计风格,需要做过项目后会有很深的理解。既然是设计风格,那么看到的许多这样文章,比如提到的“RESTfulAPI设计指南”等等,网络上还很多前辈总结出来的最佳实践。也就是说如何设计URI是没有官方标准的,当然,这不意味着就可以乱来。REST的API,看过一些国外和国内比较知名的网站的设计,大体上都差不多,应用场景不同,都会存在一些区别。作为开发者,最关系的是提供的API,用起来是否非常爽,易用等等。所以设计API的时候就要考虑资源粒度等等,不过刚开始写RESTAPI,前期没有必要太关注这些了,这些问题会在的实践中,慢慢会碰到。AWS提供的web service的API是restful风格的吗?如何理解推荐回答:那么就会得到反效果,转账,包括安全。REST提出设计概念和准则为。而对于较为复杂的面向活动的服务,这对很多网站前端开发人员来说就能够很好的mashup各种资源信息安全性技术没有好坏,以降低开发的复杂性.网络上的所有事物都可以被抽象为资源(resource)2,在我看来REST还有一个很吸引开发者的就是能够很好的融合当前Web2,开发语言之间通过SOAP来交互的web service都能够较好的互通,这些往往并不容易简单的抽象为资源,其实都是在学其形。REST ful 应用问题是否使用REST就需要考虑资源本身的抽象和识别是否困难。其次如果有严格的规范和标准定义要求,性能上不去。REST日后的发展所走向规范也会直接影响到这部分的设计是否能够有很好的生命力,事务处理等。对于SOAP Webservice和Restful Webservice的选择问题,并且针对这些资源而执行的操作是通过 HTTP 规范定义的,URI)来识别和定位资源,不知其心,无事务处理,RSS,当然需要遵循REST的思想,只要我们要操作的对象可以抽象为资源即可以使用REST架构风格,同时也最大限度的利用了Http最初的应用协议设计理念,事务等各个方面的内容,其实就会走向SOAP(例如安全)。您可以通过统一资源标识符(Universal Resource Identifier.0的很多前端技术来提高开发效率,有严格的规范和标准。极大的提高系统的可伸缩性,关键还是看应用场景。简单数据操作。所以我觉得纯粹说什么设计模式将会占据主导地位没有什么意义:创建。由于没有类似于SOAP的权威性协议作为规范,开发和调用简单这些是使用REST架构风格的优势。但是也由于SOAP由于各种需求不断扩充其本身协议的内容,但是这样细节方面有太多没有约束的地方,SOAP风格由于有清晰的规范标准定义是明显有优势的,但是对于安全要求不高的场景,这就没有上下文的约束,如果我们还是使用REST,同时特别适合对于效率要求很高,其实很大一方面也是因为其高效以及简洁易用的特性,而对于复杂的业务活动抽象资源并不是一个简单的事情,PUT。REST对于资源型服务接口来说很合适:1。我们可以在开始和实现之前就严格定义相关的接口方法和接口传输数据,同时SOAP强调操作方法和操作对象的分离,这种使用方式是没有意义的。这种高效一方面源于其面向资源接口设计以及操作抽象简化了开发者的不良设计,REST实现的各种协议仅仅只能算是私有协议,提高系统的可伸缩性。由于REST强制所有的操作都必须是stateless的,对于安全性要求较高的接口设计带来便利,ATOM)等形式,一种好的技术和思想被误用了。同时很重要一点就是不要扭曲了REST现在很多网站都跟风去开发REST风格的接口,首先需要理解就是SOAP偏向于面向活动,还有(JSON。而REST强调面向资源,除了传统的xml作为数据承载。同时在易用性方面以及学习成本上也有所增加,如果做分布式,导致在SOAP处理方面的性能有所下降。例如很多大型网站开放的REST风格的API都会有多种返回形式。同时,但是对于异构环境服务发布和调用,对资源的操作不会改变这些标识3。成熟度SOAP虽然发展到现在已经脱离了初衷,而且前期规范标准需要指导多个业务系统集成和开发的时候,同时消息头的可扩展性为各种互联网的标准提供了扩展的基础,最后弄得不伦不类,很多时候都是仍然是传统的面向活动的思想通过转换工具再转换得到REST服务,以及厂商的支持都已经达到了较为成熟的情况。不同平台,安全又保证不了,有WSDL文件规范和XSD文件分别对其定义,POST。效率和易用性SOAP协议对于消息体和消息头都有定义,DELETE。其核心操作只有GET,WS-*系列就是较为成功的规范,获取。REST和SOAP各自都有自己的优点,只有是不是合适.所有的操作都是无状态的REST简化开发.每一个资源都有唯一的资源标识(resource identifier)。而SOAP的成熟性可以给需要提供给多开发语言的,其核心是面向资源,更新和删除就可以完成相关的操作和处理,同时如果在一些场景下如果去改造REST。比如校验用户等级,如果本身就是简单的类似增删改查的业务操作,该原则告诉我们对于资源(包括网络资源)只需要四种行为,REST专门针对网络应用设计和开发方式。REST被人们的重视,其架构遵循CRUD原则,集群都不需要考虑上下文和会话保持的问题,那么抽象资源就比较容易REST是一种架构风格怎样用通俗的语言解释什么叫 REST,以及什么是 RESTful推荐回答:PUT 用来更新资源。com/v1/3://api:" target="_blank"&http。“资源”是REST架构或者说整个网络处理的核心;http:GET 用来获取资源://api:获取某人的新鲜,删除等操作。com/v1/profile,实用的是如何设计 RESTful API(REST风格的网络接口)。即通过HTTP动词来实现资源的状态扭转; 获取某人的好友列表.qc:获取某人的详细信息://api:" target="_blank"&http如何设计好的RESTful API 之好的RESTful API 特征推荐回答:一个好的RESTful API,应该具备以下特征:这个API应该是对浏览器友好的,能够很好地融入Web,而不是与Web格格不入。1.浏览器是最常见和最通用的REST客户端。好的RESTful API应该能够使用浏览器+HTML完成所有的测试(不需要使用编程语言)。这样的API还可以很方便地使用各种自动化的Web功能测试、性能测试工具来做测试。Web前端应用(基于浏览器的RIA应用、移动App等等)也可以很方便地将多个RESTful API的功能组合起来,建造Mashup类的应用。这个API中所包含的资源和对于资源的操作,应该是直观和容易理解的,并且符合HTTP协议的要求。REST开发又被称作“面向资源的开发”,这说明对于资源的抽象,是设计RESTful API的核心内容。RESTful API建模的过程与面向对象建模类似,是以名词为核心的。这些名词就是资源,任何可命名的抽象概念都可以定义为一个资源。而HTTP协议并不是一种传输协议,它实际提供了一个操作资源的统一接口。对于资源的任何操作,都应该映射到HTTP的几个有限的方法(常用的有GET/POST/PUT/DELETE四个方法,还有不常用的PATCH/HEAD/OPTIONS方法)上面。所以RESTful API建模的过程,可以看作是具有统一接口约束的面向对象建模过程。按照HTTP协议的规定,GET方法是安全且幂等的,POST方法是既不安全也不幂等的(可以用来作为所有写操作的通配方法),PUT、DELETE方法都是不安全但幂等的。将对资源的操作合理映射到这四个方法上面,既不过度使用某个方法(例如过度使用GET方法或POST方法),也不添加过多的操作以至于HTTP的四个方法不够用。2.如果发现资源上的操作过多,以至于HTTP的方法不够用,应该考虑设计出更多的资源。设计出更多资源(以及相应的URI)对于RESTful API来说并没有什么害处。这个API应该是松耦合的。RESTful API的设计包括了三个循序渐进、由低到高的层次:资源抽象、统一接口、超文本驱动。正是这三个层次确保了RESTful API的松耦合性。3.当设计面向互联网的API时,松耦合变成了一种“必须有”的强需求。紧耦合的API非常脆弱,一旦公布出去,服务器端和客户端都无法持续进化。尤其是服务器端,公布出去的接口根本不敢改,改了之后,几乎所有客户端应用立即无法正常工作。REST这种架构风格就是紧耦合API的解毒剂,这个话题可以谈的很深,这里就不展开了。感兴趣的读者可以参考《REST实战》。这个API中所使用的表述格式应该是常见的通用格式在RESTful API中,对于资源的操作,是通过在服务器端-客户端之间传递资源的表述来间接完成的。资源的表述可以有很多种格式,并且在响应和请求中的资源表述格式也会有所不同。GET/POST响应中的资源表述格式,常见的有HTML、XML、JSON;POST/PUT请求中的资源表述格式,常见的有标准的HTML表单参数、XML、JSON。4.这些常见表述格式,处理起来非常容易,有大量的框架和库提供支持。所以除非有很合理的要求,通常不需要使用自定义的私有格式。使用HTTP响应状态代码来表达各种出错情况HTTP响应状态代码,是HTTP协议这个统一接口中用来表达出错情况的标准机制。响应状态代码分成两部分:status code和reason phase。两部分都是可定制的,也可以使用标准的status code,只定制reason phase。5.如果一个所谓的“RESTful API”对于任何请求都返回200 OK响应,在响应的消息体中返回出错情况信息,这种做法显然不符合“确保操作语义的可见性”这个REST架构风格的基本要求。这个API应该对于HTTP缓存是友好的6.充分利用好HTTP缓存是RESTful API可伸缩性的根本。HTTP协议是一个分层的架构,从两端的user agent到origin server之间,可以插入很多中间组件。而在整个HTTP通信链条的很多位置,都可以设置缓存。HTTP协议内建有很好的缓存机制,可以分成过期模型和验证模型两套缓存机制。如果API设计者完全没有考虑过如何利用HTTP缓存,那么这个API的可伸缩性会有很多问题。如何设计好的RESTful API推荐回答:我目前在实际项目中使用的是Spray,这样做对于客户端开发者来说。马钧:我的期待包括两个方面,可以根据请求头提供的参数选择一个资源最合适的媒体类型。丁雪丰:HTTP/。对于资源的任何操作。这个API中所使用的表述格式应该是常见的通用格式在RESTful API中,松耦合变成了一种“必须有”的强需求。HTTP2,这是一个开源的 REST/ 这样,那这一困难就可以避免了.0协议的实现能够更好地模块化。但是在具体设计层面,希望2。对敏感的数据做加密。REST的成熟度模型中,但是现在实践中最为广泛认知的是HTTP,其中包括URI。InfoQ,对于资源的操作。缺点,API提供者和调用者会有自已的固定动词表;1:资源抽象?如何保证RESTful API的安全性呢:RESTfulAPI的版本升级,这就更不需要太关注开发框架对RESTful的支持了,都应该映射到HTTP的几个有限的方法(常用的有GET/,并且防止篡改c) 身份认证之后的授权对客户端做身份认证。另外:没研究过?李锟:这个问题我就不详细回答了。如果API设计者完全没有考虑过如何利用HTTP缓存:今年5月份发布的JAX-RS 2。再比如Response里面的Content-Type,客户端应用可以根据服务器端的能力,在文档中必须做出说明。但实际上见到过的很多声称RESTful API,常见的有标准的HTML表单参数;PUT/,可以看作是具有统一接口约束的面向对象建模过程,可以插入很多中间组件。HTTP身份认证机制(RFC 2617)非常好地体现了“分离关注点”的设计原则?李锟。尤其是服务器端:一般情况下。InfoQ。当设计面向互联网的API时。好的RESTful API应该能够使用浏览器+HTML完成所有的测试(不需要使用编程语言)、超文本驱动、授权.0规范对于RSTfulAPI的设计最有价值的特性是哪个(些),如果我们的“客户端”遵循约定。HTTP/,但是这些影响一般是针对架构(例如状态无关)或者设计(例如资源识别)上的。如果一定要选择其他框架。Web前端应用(基于浏览器的RIA应用。丁雪丰,还有不常用的PATCH/。应用程序可根据需要选择适当的模块;2。所以除非有很合理的要求,映射关系是Create-POST/;使用不同的返回代码来描述各种状态,这些系统的“调用客户端”不是浏览器而是另一个系统,这并非是OAuth协议的典型适用场景。如果在项目中已经使用了Spring。马钧,事实上我觉得这是两个正交的问题,正如之前所说的那样,改了之后,提高网络传输效率。丁雪丰,还有其中的URI和链接,首先.0规范不应该做的,我一般把它理解为REST风格的架构,我们使用这些就足够了,可选择的开发框架的范围也很广,能够很好地融入Web、POST。基于这个考虑.0规范对于RSTfulAPI的设计最有价值的特性是哪个(些)。李建业,第三层就是HATEOAS,可以作为范例参考,而它是REST的一个实现;对于DDoS攻击,也可以使用标准的status code;其次。另外:不好意思,从两端的user agent到origin server之间,而不是与Web格格不入。使用标准的HTTP身份认证机制HTTP Basic身份认证安全性较低,并且在响应和请求中的资源表述格式也会有所不同。其中的加密机制与HTTP Digest身份认证相比,这里就不展开了,具备中等程度的安全性,POST方法是既不安全也不幂等的(可以用来作为所有写操作的通配方法),RESTful API有无成熟可用规范或实现框架呢;OPTIONS方法)上面。这个做法需要确保接入方“安全域-用户名-密码”三元组信息的安全保存。HTTP协议是一个分层的架构,要尽量做到兼容,当然这个困难和原问题关系不大,Roy Fileidng曾经与SPDY协议设计者Mike Belshe发生过激烈争论.0能再接再厉.1规范中给出的动词对于设计RESTful API够用吗;wsgi来开发;DELETE四个方法:一个好的RESTful API;POST/,那将大量需要这类支持:这个API应该是对浏览器友好的安全是恒久的话题,并说明您的推介理由,就我而言,它们的适用场景是不同的。HTTP Digest身份认证可以单独使用。马钧、非堵塞,安全性更高:对于RESTful API。RESTful API建模的过程与面向对象建模类似,这一条也同时是我判断一个好的RESTful API的标准.0还是HTTP/。紧耦合的API非常脆弱;2,但这却并不是特别重要的事情——除非你理解这么做的价值。将对资源的操作合理映射到这四个方法上面,简单地使用浏览器+HTML无法测试,标明使用的版本号,GET方法是安全且幂等的,那么就不必要发明新的动词,以适应除CRUD之外的其他场景:首先说明一下。浏览器是最常见和最通用的REST客户端,OAuth 2,而对于资源的访问授权,服务器端和客户端都无法持续进化,对于基于WSDL和SOAP的Web Service。REST这种架构风格就是紧耦合API的解毒剂。李建业。丁雪丰;POST/。优点,大家可能会常常纠结于有效利用 HTTP 动词。其实。李锟。例如,那么框架的价值就更小了,这个我不太重视,例如像七牛云存储这样的存储服务,我建议尽可能保持动词不变,可以通过HTTP 301转跳到新的资源。GET/。其优点是容易理解与实现,对资源的操作也很稳定。这些框架目前都做的不错.0?李锟:我不认为安全是RESTful API需要考虑的问题,而HEAD,通常都能够映射到CRUD四个类别中,由于“资源”很稳定,或者保持老参数不动。马钧,这些都是评判一个RESTful API好坏的标准,而不需要依靠低效的轮询方式;2。遵循JAX-RS规范做开发、身份管理等安全需求,对于某些内部的,GET这四个动词,并且得到了广泛地应用? 它(们)用于解决什么问题;包含有内容协商。这个做法是最简单的、XML? 它(们)用于解决什么问题.0规范正在制定当中,是通过在服务器端-客户端之间传递资源的表述来间接完成的,请分享您认为实用的做法,安全幂等的操作用GET、JSON,OAuth身份认证与HTTP Digest身份认证之间并不是相互取代的关系,因为REST是一个推崇状态无关原则的架构风格:利用HTTP的各种动词来明确操作;最后,或者短时间内有效的Token,对我们的系统开发有很大影响,尤其是要确保操作语义对于中间组件的可见性。废弃掉HTTP/。c) Filters and Interceptors——用来分离关注点。使用OAuth协议做身份认证OAuth协议适用于为外部应用授权访问本站资源的情况,例如采用管道(pipelining)方式发送请求;最后,就是没有明显的版本。但是。李建业,请分享您认为实用的做法,比如HTTP的动词,这样就直接对REST风格产生了很大冲击,应用层的安全可以通过OAuth实现认证,正确引导人们合理地使用HTTP 2。不过插入自定义加密算法在面向互联网的API中用的不是很多。如果出现一时找不到合适的动词;2,既不过度使用某个方法(例如过度使用GET方法或POST方法)。HTTP 动词最重要的地方在于它是标准阐明了的行为,可以从三个方面来评判资源的粒度是否合理——网络的效率、字符集和编码的表现,就是能尽量利用到HTTP协议的特性,比较常见的是使用json表达复杂结构,那么这个API的可伸缩性会有很多问题、由低到高的层次?InfoQ,考虑到流式服务在未来的发展潜力:HTTP2,所以实现层面中和API规范相关的工作本来就不多。保持多样性是繁荣生态环境的基础。InfoQ,和不支持JAX-RS规范的Spring MVC等等很多框架,鉴于目前Spring在各种项目中的高出镜率.1、XML,并且防止篡改。b) Server-side Asynchronous HTTP——用来实现服务器端推送功能、JSON,此时没必要拘泥。而如果一开始就检查是否增加先验知识(缺省Content-Type为plain或者允许指定Content-Type),对于基于WSDL和SOAP的Web Service:一般是够用的、模块化和可测试是Spray的特点、DELETE方法都是不安全但幂等的,这样可以进一步提高API的安全性,我不建议扩展动词、授权。OAuth协议更适合于为面向最终用户维度的API提供授权,相信一般情况下都会选择Spring MVC。HTTP Digest身份认证机制还支持插入用户自定义的加密算法,希望这个规范能做到与HTTP 1;Update-PUT/,以防范数据被篡改、表述的大小以及客户端使用时的易用程度。丁雪丰,而且保持了操作语义的可见性,绝大多数情况下是完备的,不会很快被取代?李锟。HTTP协议内建有很好的缓存机制。那么。这个API中所包含的资源和对于资源的操作,而这与通常的缺省理解不同(缺省一般会认为是text/,那么;plain和text/。而HTTP协议并不是一种传输协议,一旦公布出去。仅对部分敏感数据做加密(例如预付费卡的卡号+密码).1协议中一些很少有人用到的部分,只用到了POST。这三部分的内容对于开发者来说都很有用、性能测试工具来做测试、传统的(因此模型稳定且已知)系统。如果必须要进行不兼容的变更、Apache CXF,将HTTP当成一种转移协议,通常不需要使用自定义的私有格式,必须与HTTPS配合使用,而不是要么全有,工作中也一直在使用Spring,几乎所有客户端应用立即无法正常工作,不过一般的编程语言都会提供一些简单的url route/,而且选择过程对应用来说是透明的:部署SSL基础设施(即HTTPS),我们有WS-Security这样的安全规范来指导实现认证、DELETE和PUT,接入第三方账户体系是个不错的选择。像Java就有支持JAX-RS规范的Jersey。InfoQ,主要是因为流式服务将会越来越多,因为这就是基本的HTTP请求、日志等逻辑与业务逻辑分离开:一个比较简单实用的做法是直接在URI中插入版本号,那么没有什么理由不选择Spring MVC,去年写了一篇文章介绍JAX-RS 2,是HTTP协议这个统一接口中用来表达出错情况的标准机制,可以分成过期模型和验证模型两套缓存机制,我一般倾向于按需实现——用到了再支持,应该是直观和容易理解的。在上面这两个方面,那也算是双方有关系。InfoQ,但是这和其它风格的API设计所要考虑的问题似乎没什么区别,那么2,都可以设置缓存。感兴趣的读者可以参考《REST实战》;match策略,这时我就不会太拘泥HTTP动词,这两者的“正交点”上似乎确实有些问题,这方面的框架有不少(例如Spring Security),即使是不严格的时候,此时开发框架能做的事也就只有简化编程了(相较而言,所谓“先验信息”:如何对RESTful API进行版本控制,比如批量操作。马钧,对于CRUD四个类别的操作来说是足够的:个人认为RESTful的安全性分为几个层次、语言,是设计RESTful API的核心内容:由于本人是Spring的拥护者。也有做法是增加HTTP标头。那么。RESTful API的设计包括了三个循序渐进,希望这个规范能在最终定稿时附带一个最佳实践。增加更多的动词,但是真正的流需要区分数据通道和控制通道——哪怕是逻辑上的区分。按照HTTP协议的规定:这类基于简单用户名+密码机制的安全性不可能高于基于非对称密钥的机制(例如数字证书)、资源等方面的支持都做了一定的增强,各种HTTP流量清洗策略。com提供的API是我见到过的较为不错的RESTful API,对应用开发者来说是透明的。InfoQ,除了表述的正文内容,在响应的消息体中返回出错情况信息。需要注意:Roy Fielding谈Google SPDY协议李建业,基于 Scala 和 Akka 构建。这些常见表述格式.0规范应该做的,您对它的期待是什么,其实已经破坏了我之前说的*“尽可能少的先验信息”*,没法推荐。当然?在什么情况下需要扩展,更新密钥和升级签名算法很困难,在JAX-RS 2:在我的实际项目中:a) 对客户端做身份认证b) 对敏感的数据做加密。如果在资源上定义的操作过多、OPTIONS,不太能参与讨论。那么,并且规定一种签名的计算方法,其它方法都不如这个实用,这时可以选择在路径或参数中增加版本信息,比如Google和Facebook的。要求接入方的请求中必须加上签名参数。响应状态代码分成两部分,希望HTTP 2;rakc/,DELETE,最常用的也就是GET,有的框架还能起到引导设计的作用)。REST开发又被称作“面向资源的开发”。例如,反而会变成额外的“先验信息”;但是:个人认为最好的版本化。使用HTTP响应状态代码来表达各种出错情况HTTP响应状态代码。李建业,需要更多的学习成本,保证原有的API都能正常工作、身份管理等安全需求,SPDY在这方面还是有所改进的,要变更一个参数。不同的编程语言有不同的REST开发框架。如果资源抽象做的很好,一个RESTful API最重要的一点应该是——“尽可能少的先验信息”。另外一种实用的做法就是在url中保留版本号。开发RESTful API的需求范围很广,不过我可以解释一下为什么对RESTful API框架不感冒的原因.0,同时提供多个版本供客户端使用,这个地方我也没有特别的想法。在服务器端做HTTP身份认证的职责可以由Web Server(例如Nginx),并加入某种随机数作为加密盐。com/;其次;v1/。另一个做法是在HTTP请求中加入自定义头信息;HTTP 工具包和底层网络 IO 包:目前比较好的方式还是在uri设计中添加版本信息,可以确保服务器端以及客户端代码的可移植性。通常应该实现某种基于角色+用户组的授权机制,对于REST的支持程度也不同,其他都可以用POST,包括国内的和国外的。李建业.1规范中给出的动词对于设计RESTful API够用吗;POST响应中的资源表述格式,自己制定一套动词放在参数中也可以接受——只要动词不变化,另外还要注意防范replay攻击:HTTP1.0能带来更好的性能,不推荐新用户再继续使用之前的参数,而认证和授权通常基于第三方解决方案:我个人关注异步API这部分,敏感数据的传输全部基于SSL,我们会选择拆分出更多的资源,不值得特别注意,目前我所知道的只有chunk方式进行简单的支持,常见的有HTML,所以RESTful API也可以不太严格的指基于HTTP的API——当然,有大量的框架和库提供支持,以至于HTTP的方法不够用,公布出去的接口根本不敢改,能符合这些条件的并不多,而由于RESTful会抽象动词。在对已发布的服务进行变更时、Restlet,所以往往会出现违背有状态约束的问题,所以在选择框架时会更多地倾向Spring MVC(并不是说别的框架不好:应该做的和不应该做的:REST开发框架RESTEasy项目负责人Bill Burke。至于WS-族的协议,针对的是客户端——对API来说就是调用者。这个API应该是松耦合的,这个有时会被新手忽略,将鉴权:这个问题取决于设计者如何看待和设计资源,应该具备以下特征:status code和reason phase,这说明对于资源的抽象;2,并说明您的推介理由,更好地实现代码重用,RESTful API有无成熟可用规范或实现框架呢,并没有出现一定要自己扩展动词的情况.0协议不应该把底层的数据加密机制(即SSL)作为必选项、异步。不过这个做法其实对浏览器不够友好,也就不必增加“先验信息”?能否为InfoQ的读者们推荐一款实用的RESTful API开发框架,是以名词为核心的,国内的当然也有几个候选,在安全要求较高的场合,或者一些传统系统,您对它的期待是什么、授权和身份管理,资源有合适的粒度,则只能依靠应用程序来实现了,如果不分青红皂白清一色POST那显然还有改进的余地。轻量级,此时如果强制对应到HTTP动词。丁雪丰;PUT/,估计即使出来?您在实际项目中会扩展自己的动词吗,使用者如果只认识1:什么是好的RESTful API。如果API并不是面向最终用户维度的,缺点是需要承担安全保存密钥和定期更新密钥的负担。如果发现资源上的操作过多.1。改进HTTP协议(作为资源的统一接口)之中操作语义表达方式的语法,另外还要注意防范replay攻击。HTTP的GET/。更好地模块化,得到了广泛的支持(大量HTTP服务器端。李建业,是表述的设计,因为一般涉及到系统间协同的API,对于某个资源的任何操作;Delete-DELETE,有时一些“不够用”的场景是由于我们没有设计出合理的资源.1的兼容、要么全无,主要工作就基本结束了.0很大程度上是借鉴了Google的SPDY。REST作为一个架构风格,只是在调用时会稍有不便,而不是必须依赖某种特定的开发框架,常用的HTTP动词是够用的:能否为InfoQ的读者推荐一款实用的RESTful API开发框架,应该正确地使用HTTP的统一接口。HTTP/。我同意Bill在文章中的观点:在请求中加签名参数为每个接入方分配一个密钥;html).0协议不应该背离REST架构风格的约束,一旦扩展了动词。所以RESTful API建模的过程,除非你想重新设计动词表:HTTP 2,有几种常见的做法,最关键的就是在扩展时不能破坏现有的客户端。这些名词就是资源,主要是由应用来控制:首先,这个系统依然是REST风格的?如何保证RESTful API的安全性呢,任何可命名的抽象概念都可以定义为一个资源,对REST这个概念。正是这三个层次确保了RESTful API的松耦合性,可以通过HTTPs这样的加密协议来保证网络层的安全;PUT请求中的资源表述格式,有些框架能帮我们生成全部的动词支持,只定制reason phase,这种做法显然不符合“确保操作语义的可见性”这个REST架构风格的基本要求;Retrieve-GET/,如果使用RESTful API来提供认证,可以对全部参数进行签名,在设计资源时稍加考虑即可?相信每个人都有自己的评判标准.0已经基本成熟了。这个API应该对于HTTP缓存是友好的充分利用好HTTP缓存是RESTful API可伸缩性的根本。设计出更多资源(以及相应的URI)对于RESTful API来说并没有什么害处,我不太了解,一个好的API标准;1。身份认证之后的授权,对于一些企业内部系统,PUT,并且符合HTTP协议的要求:对此规范关注不多.0增加的内容中,我特别期待业界在这方面有所进展,后续对多种类型的客户端接入的支持就会变成陷阱(我们多次遇到过这个问题),常见的做法有,PUT。资源的表述可以有很多种格式;为了防范重放攻击可以在请求中增加一次性的Token?如何对RESTful API进行版本控制.0规范正在制定当中;HEAD/、移动App等等)也可以很方便地将多个RESTful API的功能组合起来?李锟。如果可以,不知道会不会有对于流的支持,建造Mashup类的应用;POST/.rest。马钧;2:与HTTP/,但这其实很重要,所以一旦涉及到具体实现,所以如果在API中忘记用Content-Type进行区分的话,这里有些个人主观的成份)?您在实际项目中会扩展自己的动词吗,在实践中。parse,但这也未必是好事。HTTP/。而在整个HTTP通信链条的很多位置、App Server(例如Tomcat)。我们通常不会选择创建自己的动词,为了防篡改。com 或者 rest:基于标准、安全框架(例如Spring Security)来承担,Spring目前还提供了Spring Hateoas子项目。两部分都是可定制的、TRACE则基本用不太到?HTTP1,都可以继续发挥作用,也不添加过多的操作以至于HTTP的四个方法不够用,推荐前两种方法、客户端库),详情请看,但是需要确保接入方密钥的安全保存。这样的API还可以很方便地使用各种自动化的Web功能测试,而不是传输协议。CRUD四个类别对于操作资源来说,自由地选择使用HTTP/,主要包括三大方面;1。兼容的含义是说两者可以并存.1协议保持兼容。包括但不限于?在什么情况下需要扩展。我认为,应该考虑设计出更多的资源、基于 actor 模式:在我看来.0能优雅“降级”:a) Client API——用来规范化JAX-RS客户端的开发方式、链接和各种不同的表述的兼容,尽量兼容之前的版本;对内容加密可以实现数据防泄露……,那么可以选择标记不同的版本号,而且不够灵活:安全是恒久的话题。比如HTTP动词,也要选择能够方便与Spring集成的框架,例如获取隶属于用户的微博信息等等?今年5月份发布的JAX-RS 2。如果一个所谓的“RESTful API”对于任何请求都返回200 OK响应,我们也不可能直接基于servlet/。RESTful API设计的最佳实践应该是通用的,如 v1。当然,最重要的三部分为。我对框架的选择没有倾向性,您认为一个好的RESTful API应该具有哪些特征呢,处理起来非常容易,可以选择同时兼容新旧两种输入,常见的安全措施都是可以继续使用的,API本身也应该力求遵循REST架构风格,这个话题可以谈的很深、RESTEasy,扩展动词和重新设计动词的成本差别不大,它实际提供了一个操作资源的统一接口?李锟,也就是说。在授权和认证方面;DELETE四个方法,往往不会使用普通的文本,提供一个新的参数,这样做允许多个版本的API并行运行、统一接口,对链接:保证RESTful API的安全性,我们有WS-Security这样的安全规范来指导实现认证,1.1还有很长的生命周期,不过大多数开发团队还是喜欢自己来实现相关功能,这样HTTP/不明白php的restful,有什么实际用处吗推荐回答:PUT和DELETE肯定是幂等得,就像大家都说普通话: text/,可以让Web接口的功能和整体结构更加清晰,多么和谐自然啊(就是题主的摘录内容)请求所造成的影响明确,这里最好用“好处”这个词来代替“用处”,仅仅通过URI就能方便的推测出来接口是做什么的.,而这些动作正好可以满足我们对资源状态进行操作的需要.,交流起来多方便啊)对资源的操作正好对应相应的HTTP动作(GET、PUT,需要自己根据业务需求综合判断是否需要采用),这样同样一个URI就可以输出多种格式而不再需要在URI里面特别加上一个type=json的参数了客户端,比如GET肯定是安全的,以及多个资源之间关联性利用HTTP内容协商(content negotiation)实现资源的多重表述,而改用“RESTful风格”会有一些额外的“好处”,而这些动作又是HTTP协议本身提供的?”其实、POST,比如Cache,POST肯定是不安全的(这里的肯定是建立在API设计完全遵循“RESTful风格”基础上的)良好的符合“RESTful风格”的URI设计,也带来了更好的兼容性(这是一个所有遵循一定规范所带来的共通的好处:统一的风格能够让各方更加便利的进行交互,也就是说想对资源状态进行什么样的操作就选择什么样的动作,因为传统的Web接口实现方式同样能够实现业务需要(所以这不是一个必须的事情、代理服务器等可以根据HTTP协议规范进行相应的额外处理,比如请求方可以把自己需要的格式放到头信息的Accept字段中表述(如Ajson),或者说副作用明确、DELETE) 我理解你的问题应该是“把传统的PHP Web接口改成符合RESTful风格的Web接口有什么用处angularjs能够调用restful api吗推荐回答:'}}]);};/:$id },notes/。属性/}响应转换有时基于既定的后台设计; R; note === {id.$action([parameters], content,/$resource':每个URL对应一个资源对资源的不同操作对应于HTTP的不同方法资源表现形式(representation)通过Accept和Content-Type指定AngularJS提供了$resourceService来更方便地与RESTful服务器API进行交互;hello'。RESTful风格的设计不仅具有更好的可读性(HumanReadable);/}]}var pager = JSON: {method,而非数组; GET, note === {/:id'//: ', {noteId。例如: '.controller('.update({Notes', function($;, content: /};hello': [{hello'notes返回的是一个分页器对象,可以手动配置这个映射关系;notes// GET;GET': PUT /当然.content = ':/可以的REST(表征性状态传输.html" target="_blank"&}note, null,多于的属性会成为URL Query,/: '//:note, ': 'return pager:/,success参数为(/类似响应重写;/,多于的属性映射会成为URLQ/,此时操作名需加前缀$。参考文档。你可以配置一个update操作来完成HTTPPUT: ' POST;hello'N@id':var Notes = $resouce('@owner'notes/: 123; Response: { method: 3,/: ' Response, {update:notes/。具体的调用参数可参考文档:id):var Notes = $resouce(': Resource.get({}/.factory(': 20;});通过资源实例调用;1 {id.org/api/ngResource/service/$resourceResource Factory$resourceService定义在ngResourceModule中;/@id'notes/alice'alice/: ', {@id', ['?user=aliceREST操作的声明和调用中.action([parameters].class"bob': 2;;;/, ['/, content,responseHeaders): 'notes/。例如;/, [success]: instance: 1;;hello', ['.factory(', content.$delete();helloA//: [{id, owner: '$scope': /,需要在你的HTML中引入这个Module对应的JS;notes/.update({;URL映射上述例子中;; }});notes/halo'2}): /: 1:var note = Notes。此时;/ DELETE, note).action([parameters]:noteId'notes/123, {pager:xxx':var app = angular: 1;/}现在你的Notes有六种操作了, [success], {@owner': '。这些操作有两种调用方式,我们看到note对象的id属性会映射到URL中的:id'}];://123在构造$resource时: 2, content: 123;halo'/。com//angular-resource: {id.$update();notes/world': /,但需要设置响应转换回调;class";notes/://notes/ngResource' note === {id, content:id':varNotes = $resource(' S, {id: 'notes/.$delete(), [error])其中; pageSyyy'.content = ': 3:id'//: {]);,transformResponse://world'3 {id: /:'halo'}将会读取note的owner和id属性来生成URL;;};hello':/, content,/: ',我们仍然可以使用$/:userId/.$save(), headers){/users/NotesCtrl': /.$update({trusted, ['/:HTTP GET "PUT': 1.$save()。例如;;,无法提供完全RESTful的API, [error])non-GET ", [error])non-GETvar first = notes[0],可以方便地定义一个REST资源,直接在控制器中存起来;。REST风格体现在URL设计上: ': ':id),userId,xxx'notes/: 1.org/api/ngResource/service/$resource" target="_blank"&https?operator=bob&=true {id:NNotes': {method: ' totalP}]): 3}),同时在你的APP中添加这样一个依赖;/: ',error参数为(httpResponse).parse(data): 123: ',而不必手动所有的声明CRUD方法;yyy'/ POST; PUT:id(/://harttle: ' notes === [{id:var Notes = $resouce(': '。地址;Notes'.query(function(){/: 1;/,例如: /.angularjs,/,: ');$resource',/}});notes/,例如;}./: 2:id' actions: ', content, save,你还可以设置请求转换transformR: /,但如果你发现$resource的使用过程极其复杂。com//angular-resource.module('/: '.query(function(){/,比如删除note时:var Notes = $resouce('。如果你的业务更加复杂, owner, {notes/,你也可以不把$esource的实例放到Factory里;现在;notes/, delete,比如/:xxx})。虽然$resource的设计可以支持绝大多数的URL和内容表示设计;world'}}]}): true}),$id = note:alice'。CRUD在你的控制器中就可以对资源进行增删改查了;hello'}}), null,你可以在控制器中获取一个note并更新它;PUT 操作$resource提供了五种默认操作: 123.$delete().angularjs, content:return $resource('然后为资源建立一个Factory: ': ' actions。例如, {id, postData, {var notes = N/:通过资源类调用; DELETE;users/,而且易于做缓存以及服务器扩展(scalability);var note = new Notes({/first: R}}});//, function($resource) {return $resource(', Notes) {var notes = Notes, [success]: function(123,那可能是你的服务器API并不满足RESTful风格;}]); DELETE: 2, operator,Representational State Transfer)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格设计RESTful风格的api,获取短信验证码的接口应该放在哪个资源下比较好?推荐回答:比如sms-notify如果执行资源操作的人是请求者,那就用名词做uri,记得有一个比较好的例子是转账业务。所以短信验证码用一个创建一个短信通知比较合理,用transaction做uri,如果执行资源操作的是服务器或者其他就创建一个服务请求分享至 :
下一篇:上一篇:相关文章相关帖子--restful设计风格}

我要回帖

更多关于 restconf restful区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信