RestFul架构
文章平均质量分 78
目前在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。这里主要讲解jersey实现RestFul架构。
十五楼亮哥
肯与邻翁相对饮,隔篱呼取尽馀杯。
展开
-
更好地设计你的REST API
一、简介 REST API 设计在细节上有很多自己独特的需要注意的技巧,并且对开发人员在构架设计能力上比传统 API 有着更高的要求。 本文通过翔实的叙述和一系列的范例,从整体结构,到局部细节,分析和解读了为了提高易用性和高效性, REST API 设计应该注意哪些问题以及如何解决这些问题。由于 REST 可以降低开发的复杂度,提高系统的可伸缩性,增强系统的可扩展性,简化应用系统之间的集成,转载 2015-08-14 22:47:43 · 2092 阅读 · 0 评论 -
我对REST的理解
1:rest的由来 REST即表述性状态传递(英文:Representational State Transfer,简称REST) 通俗点说:资源在网络中以某种表现形式进行状态转移。源于REST之父 Roy Thomas Fielding 2000年的一篇博士论文。 Fielding是一个非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、A原创 2015-08-14 22:59:40 · 6089 阅读 · 1 评论 -
REST正则表达式的用法
1:@Path上定义的参数,可以使用正则表达式如:@Path("users/{username: [a-zA-Z][a-zA-Z_0-9]*}")此处,如果用户输出的参数不匹配,就会报404(Not Found)错误。2:顺序作用域 /***顺序作用域* Http 方法: GET * API 路径: /rest/te原创 2015-01-16 11:10:06 · 6129 阅读 · 0 评论 -
REST资源三要素
首先上图如何规划REST服务 当我们要规划一个REST服务的时候,其中最关键的概念其实就是“资源”。 资源是什么呢?广义上讲,任何事物只要它有用,那么它就是资源。狭义的讲(在Web环境中),它是一个可以存放、连接在计算机上,可以通过比特流进行操控的实体。一个实体想成为资源,它必须有一个URI。在这里URI包含了两重含义:1)它是资源的名称 2)它原创 2015-01-17 21:01:01 · 3875 阅读 · 0 评论 -
REST资源定位(不断更新)
前言: REST使用URL实现资源定位。资源地址的设计是非常谨慎的。如果设计不好,不仅REST接口的风格无法统一,使得系统的扩展性和易用性降低,也很难实现资源的准确定位。一个URL和Http方法,可以唯一确定一个资源,但是一个资源可以拥有多个URL,例如软件的最新版本为2.0.那么最新版本的URL和2.0版本的URL就指向同一个资源。原创 2015-01-15 17:18:02 · 3064 阅读 · 2 评论 -
论REST架构与传统MVC
一前言 : 由于 REST 可以降低开发的复杂度,提高系统的可伸缩性,增强系统的可扩展性,简化应用系统之间的集成,因而得到了广大开发人员的喜爱,同时得到了业界广泛的支持。比如 IBM,Google 等公司的很多产品都提供了 REST API 给开发人员;与此同时,大量的开源项目和云计算服务都提供了 REST API 接口。 而在最近,一些新产原创 2015-01-14 13:59:07 · 5552 阅读 · 3 评论 -
JAX-RS规范-常用注解浅析
一、@Path 若希望一个Java类能够处理REST请求,则这个类必须至少添加一个@Path("/")的annotation; 对于方法,这个annotation是可选的,如果不添加,则继承类的定义。(1)@Path里的值可以是一个复杂的表达式,例如@Path("{id}") ,其中 {id}表达式代码了一个模板参数; 一个模板参数是一个定义在@Path里的通配原创 2015-01-14 13:21:35 · 5410 阅读 · 0 评论 -
REST(Jersey实现)统一异常机制
一:异常分类 (1)Throwable类是所有异常的始祖,它有两个直接子类Error / Exception: Error仅在Java虚拟机中发生动态连接失败或其它的定位失败的时候抛出一个Error对象。一般程序不用捕捉或 抛出Error对象。 (2)Unchecked Exception: a. 指的是程序的瑕疵或逻辑错误,并且在运行时无法恢复。 b. 包括Err原创 2015-01-13 15:49:39 · 5139 阅读 · 1 评论 -
Jmeter自动化测试
1 jmeter工具介绍2 jmeter工具安装,使用jmeter自动化测试RestFul Api演示。3 提供自动化测试Demo脚本4 自由讨论。1 jmeter工具介绍 Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试原创 2014-12-23 13:44:22 · 10608 阅读 · 4 评论 -
RESTful架构:历史+规范+进阶
近几年,RESTful Web Services渐渐开始流行,大量用于解决异构系统间的通信问题。很多网站和应用提供的API,都是基于RESTful风格的Web Services,比较著名的包括Twitter、Google以及项目管理工具Redmine。本文将简要介绍RESTful Web Service,希望能对读者有所帮助。一、 RESTful起源REST这个词,是Roy T原创 2015-01-12 23:35:07 · 2626 阅读 · 0 评论 -
JAX-RS规范基础
1:概念与常用注解JAX-RS是一套用java实现REST服务的规范,提供了一些标注将一个资源类,一个POJOJava类,封装为Web资源。标注包括:@Path,标注资源类或方法的相对路径@GET,@PUT,@POST,@DELETE,标注方法是用的HTTP请求的类型@Produces,标注返回的MIME媒体类型@Consumes,标注可接受请求的MIME媒体类型@PathPara原创 2015-01-12 23:41:16 · 2767 阅读 · 0 评论 -
RestFul Api 定义流程规范
(1)整理项目需求,编写Api需求文档,包括Api返回结果,查询参数等等。(2)编写RestFul Api接口。(3)测试RestFul Api接口。(4)编写Api说明文档,包括Api的名称,路径,Http方法,请求参数,功能模板,返回结果等等,方便各模块研发人员和测试人员使用。(5)测试人员测试Api,主要测试系统性能,还有一些特出场景测试,例如多线程,并发操作。编写Api测试原创 2014-12-26 17:47:51 · 12917 阅读 · 0 评论 -
jersey2搭建流程
一:环境介绍 (1)Jersey2.5.1 (2)Eclipse 3.7 +Tomcat 7 +JDK 7二:搭建步骤 (1)通过地址https://jersey.java.net/ 下载jaxrs-ri-2.5.1.zip。 (2)通过Eclipse 创建动态工程RestDemo。 (3)解压jaxrs-ri-2.5.1.zip,拷贝下图列表中的JAR包到RestD原创 2014-12-24 17:51:20 · 3932 阅读 · 2 评论 -
jersey1.X与jersey2.X的区别
1:web.xml加载jersey的servlet容器jersey1.X使用的是sun的com.sun.jersey.spi.container.servlet.ServletContainerjersey2.X使用的是glassfish的org.glassfish.jersey.servlet.ServletContainer2:扫描jersey resour原创 2014-12-24 17:41:58 · 7756 阅读 · 0 评论 -
REST与面向资源的Web开发-李锟(读书笔记)
1:什么是WEB 从技术角度理解Web有三大基石,第一是URI,标识资源,第二个HTTP操作资源,第三个HYPERTEXT超文本,描述资源的状态,超文本也可以有XML JSON或者纯文本。下面我们给Web应用下一个定义,究竟什么是Web应用?首先要使用三大技术,其次是运行在英特耐特环境中,而不是运行在局域网、内网环境,Web应用名词与企业应用相对应。2:什原创 2014-12-24 17:32:48 · 1876 阅读 · 0 评论 -
RestFul API测试方法
定义了RestFul Api,必须先做单元测试,确保Api可用,然后再交给别人去调用,这样才能确保工作进度。下面我就说说我测试Api的几种方法,具体怎么测试这里不做详细描述。(1)使用Apache的jmeter测试工具,很方便,可以批量测试Api, (2) 使用JerseyClient写测试程序。因为我们用的是jersey实现的RestFul。 (3) 使用浏览器插件工原创 2014-12-24 17:33:44 · 9131 阅读 · 0 评论 -
RestFul(jersey实现)如何获取前台Parameters
1:普通参数例如:一个获取用户列表的Api Urlvar url = AppContextPath + "/rest/users?page="+page+"&per_page="+per_page+"&name="+txtName+"&sortby="+currentSortField+"&order="+ currentSortOrder;参数获取方式:@QueryParam("原创 2015-01-10 13:25:36 · 2714 阅读 · 0 评论