其他分享
首页 > 其他分享> > Restful 框架

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