ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Restful 框架

2022-06-15 15:02:00  阅读:194  来源: 互联网

标签:Web Java 框架 RESTful Dropwizard REST 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有