Restful 框架
作者:互联网
一、什么是REST
REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy
Fielding是HTTP规范的主要编写者之一。 他在论文中提到:"我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,
得到一个功能强、性能好、适宜通信的架构。REST指的是一组架构约束条件和原则。" 如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。
REST本身并没有创造新的技术、组件或服务,而隐藏在RESTful背后的理念就是使用Web的现有特征和能力, 更好地使用现有Web标准中的一些准则和约束。虽然
REST本身受Web技术的影响很深, 但是理论上REST架构风格并不是绑定在HTTP上,只不过目前HTTP是唯一与REST相关的实例。 所以我们这里描述的REST也是通过
HTTP实现的REST。
二、什么是RESTful
RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务接口的场景,
实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。
三、六大创建RESTful服务的Java框架
1. Dropwizard
Dropwizard是一个操作友好、开发RESTful服务的Java高性能框架,Dropwizard有自己独立的风格,可以辅助以Jetty Jackson Jersey和Metrics提供强大的基
于JVM后端服务,Dropwizard将稳定 成熟带给了Java生态系统,大道至简,轻量库包让你聚焦业务,Dropwizard有out-of-the-box支持复杂的配置 应用度量记录、
日志等,让你的队伍在短时间内生产出高质量的HTTP+JSON Web服务。
Dropwizard与Spring Boot比较:
相关文章:Dropwizard官方教程
2. Jersey
Jersey是一个JAX-RS标准实现,很容易创建和部署一个RESTful服务,其文档已经足够学会起步,Jersey RESTful的Web服务框架是开源 具备生产质量的Java
Web服务开发框架,提供JAX-RS API支持Jersey的特点如下:
相关文章:用Jersey开发RESTful服务
3. RESTEasy
RESTEasy是一个JAX-RS标准完整认证的开发RESTful服务的框架,它是属于JBOSS项目,这个项目中有很多框架帮助你构建RESTful Web服
务和Java应用程序,JAX-RS是一个新的JCP规定,规范基于Http协议提供RESTful Web服务的java API。
4.Retrofit
Retrofit使用出品Scala的type-safe提供Java的REST客户端,Retrofit是一个让你以简单Java接口定义API,然后自动转换到完整的REST客户端。
5.Spark
Spark是一个Sinatra风格的基于Java的微框架,它是一个简单的轻量级的Java Web快速开发框架,,它的重点是尽可能的简单与直接,没有繁琐的XML配置,只
要最小的努力并很快开发纯Java的Web应用,与那些使用注解很繁琐实现的Web框架(如Spring),它是一个完全不同的范式,也是JAX-RS实现。
6.Swagger
Swagger是一个规定,不是具体Java框架,是针对RESTful框架实现的标准规定,用于描述、生产、消费和虚拟化RESTful Web服务,
Swagger还是一个简单且强大的RESTful API的表现语言,有巨大的API生态系统,很多开发人员支持Swagger,使用Swagger-enableAPI,你会得到交互文档,
客户端SDK产生器和发现。
四、REST与SOAP的区别和联系
五、Web Service 与API
Web Service 是一个平台独立的,低耦合,自包含的,基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、协调和配置
这些应用程序,用于开发分布式的交互操作的应用程序。
API:应用程序接口(Application Programming Interface),又称应用编程接口,就是软件系统不同组成部分衔接的约定,应用程序接口经常是软件开发工具包(SDK)的一部分
二者区别如下:
代码:
1 //发送GET请求 2 public static String sendGet(String url, Logger log) { 3 String result = ""; 4 BufferedReader in = null; 5 try { 6 String urlName = url; 7 URL realUrl = new URL(urlName); 8 URLConnection conn = realUrl.openConnection();// 打开和URL之间的连接 9 conn.setRequestProperty("accept", "*/*");// 设置通用的请求属性 10 conn.setRequestProperty("connection", "Keep-Alive"); 11 conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"); 12 conn.setConnectTimeout(4000); 13 conn.connect();// 建立实际的连接 14 in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));// 定义BufferedReader输入流来读取URL的响应 15 String line; 16 while ((line = in.readLine()) != null) { 17 result += line; 18 } 19 } catch (Exception e) { 20 log.info(("发送GET请求出现异常!" + e)); 21 } finally {// 使用finally块来关闭输入流 22 try { 23 if (in != null) { 24 in.close(); 25 } 26 } catch (IOException ex) { 27 log.info("程序异常:" + ex.toString()); 28 } 29 } 30 return result; 31 }View Code
标签:Web,Java,框架,RESTful,Dropwizard,REST,Restful 来源: https://www.cnblogs.com/caspertd/p/16378013.html