restful风格接口
A. springmvc怎么写restful风格的接口
<!-- Jar版本管理 -->
<properties>
<springframework>4.0.2.RELEASE</springframework>
<log4j>1.2.17</log4j>
<jstl>1.2</jstl>
</properties>
<dependencies>
<!-- Spring web mvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springframework}</version>
</dependency>
<!-- JSTL -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>${jstl}</version>
</dependency>
<!-- log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j}</version>
</dependency>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
B. 如何编写restful风格接口文档
info主要存放内容,即请求端需要的数据
response_status 有成功和失败
msg 请求成功为空,失败害厂愤断莅登缝券俯猾则解释请求为何失败,逻辑或者少传参数,等等。
{
"info": {
"extra": null,
"data":""
},
"response_status": "success",
"msg": ""
}
C. 设计RESTful风格的api,获取短信验证码的接口应该放在哪个资源下比较好
如果执行资源操作的人是请求者,那就用名词做uri,如果执行资源操作的是服务器或者其他就创建一个服务请求,记得有一个比较好的例子是转账业务,用transaction做uri。所以短信验证码用一个创建一个短信通知比较合理。比如sms-notify。
D. restful风格的url能以.do结尾吗
一个好的RESTful API,应该具备以下特征:
这个API应该是对浏览器友好的,能够很好地融入Web,而不是与Web格格不入。
浏览器是最常见和最通用的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的可伸缩性会有很多问题。
E. 除了github还有哪些地方提供了restful风格接口
jquery例子,把type改成对应的提交方式。
var _bookjson=$("#bookjson").val();
$.ajax( {
url : 'resteasy/library/books/mapped',
type : 'PUT',
data : _bookjson,
dataType : 'text',
contentType:'application/json',
async : true,
success : function(data) {
alert("提交成功!!返回值:"+data);
},
error : function(XMLResponse) {
alert(XMLResponse.responseText);
}
});
F. restful 怎么 调用接口
使用Node.js和npm安装CoffeeScript
尽管有很多不借助Node来运行CoffeeScript代码的方法(附录2会谈到其中几种),然而我还是假定你在全书中用的是标准的coffee命令,专门运行在Node上的。但是只有在第6章才会明确需要使用Node和npm。
请注意,使用Windows系统的用户,在继续之前你需要先安装Cygwin 。Cygwin基本上相当于一个Linux模拟器。虽然Node.js在0.6版本的蓝图中计划直接支持Windows,但是在写作本书之时,使用Cygwin是现有的最可靠的方法。
Mac用户需要安装Xcode ,重点并不在于这个程序,而在于那些随它一起安装的命令行开发工具。尝试运行命令gcc(GNU编译器集合)来检测系统中是否已经安装了这些工具:
G. spring mvc restful风格的api怎么过滤相同路径
Restful风格的API是一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
在Restful风格中,用户请求的url使用同一个url而用请求方式:get,post,delete,put...等方式对请求的处理方法进行区分,这样可以在前后台分离式的开发中使得前端开发人员不会对请求的资源地址产生混淆和大量的检查方法名的麻烦,形成一个统一的接口。
在Restful风格中,现有规定如下:
GET(SELECT):从服务器查询,可以在服务器通过请求的参数区分查询的方式。
POST(CREATE):在服务器新建一个资源,调用insert操作。
PUT(UPDATE):在服务器更新资源,调用update操作。
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。(目前jdk7未实现,tomcat7也不行)。
DELETE(DELETE):从服务器删除资源,调用delete语句。
了解这个风格定义以后,我们举个例子:
如果当前url是 http://localhost:8080/User
那么用户只要请求这样同一个URL就可以实现不同的增删改查操作,例如
http://localhost:8080/User?_method=get&id=1001这样就可以通过get请求获取到数据库 user 表里面 id=1001 的用户信息
http://localhost:8080/User?_method=post&id=1001&name=zhangsan这样可以向数据库 user 表里面插入一条记录
http://localhost:8080/User?_method=put&id=1001&name=lisi这样可以将 user表里面 id=1001 的用户名改为lisi
http://localhost:8080/User?_method=delete&id=1001这样用于将数据库 user 表里面的id=1001 的信息删除
这样定义的规范我们就可以称之为restful风格的API接口,我们可以通过同一个url来实现各种操作。
H. 用一般处理程序可以像WEB API一样写RESTful风格的接口吗
一般处理程序ashx和页面处理程序aspx的区别
ashx 文件用于写web handler的。。ashx文件与。aspx文件类似,可以通过它来调用HttpHandler类,它免去了普通。aspx页面的控件解析以及页面处理的过程。
ashx文件适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容
ASP.NET 运行时将调用处理程序的 ProcessRequest 方法来处理请求,来创建页面对象。通常情况下,无需更改此方法的实现,因为它是由 Page 类提供的。接下来被创建页面对象的ProcessRequest方法使页面经历了各个阶段:初始化、加载视图状态信息和回发数据、加载页面的用户代码以及执行回发服务器端事件。
I. 什么是restful风格的api
直观认识
对url进行规范,写RESTful格式的url
非REST的url:http://…../queryItems.action?id=001&type=T01
REST风格的url:http://…./id/001/type/T01
特点:url简洁,将参数通过url传到服务端
http的方法规范
不管是删除、添加、更新。。使用url是一致的,如果进行删除,需要设置http的方法为DELETE,同理添加POST。。。
后台controller的方法里需要判断http方法,如果是delete执行删除,如果是post执行添加(使用SpringMVC等类似框架可以省去我们自己判断的过程)
对http的contentType规范
请求时指定contentType,要json数据,设置成json格式的type。。
个人理解
源于网站即软件的思想
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。
这种”互联网软件”采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。
网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合。(备注:因为这是研究者在2000年发表的论文,所以这里说的软件开发的概念都比较古老了,我们现在的软件应该都属于他说的互联网软件)
问题来了——如何更好的通信
现在我们必须考虑,如何开发在互联网环境中使用的软件。
如何得到一个功能强、性能好、适宜通信的架构
解决方案——统一的风格
网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备……)。
因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API架构的流行——RESTful是其中之一。
定义
REST:Representational State Transfer
REST: 指的是一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。
RESTful:满足这些约束条件和原则的应用程序或设计就是 RESTful。
应用范围:它主要用于客户端和服务器交互类的软件。
优点:基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制(?还没有什么体会,暂且写到这里)。
综述:
(1)每一个URI代表一种资源;(可以把资源理解为网络中的信息)
(2)客户端和服务器之间,传递这种资源的某种表现层;(表现形式,如资源的格式JSON、XML)
(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现”表现层状态转化”。(HTTP协议,是一个无状态协议。通过GET,POST,DELETE等使服务端的资源发生改变,如:修改,删除)
每个资源都使用 URI (Universal Resource Identifier) 得到一个唯一的地址。所有资源都共享统一的接口,以便在客户端和服务器之间传输状态。
J. 如何将ssh 改成restful风格
使用spring web即可,annotation方式。
只需修改spring部分,一个在线例子
http://www.mkyong.com/spring-mvc/spring-3-rest-hello-world-example/