webservice结合spring实现restful风格

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36720650/article/details/78859619
webservice:是一种远程资源调用技术,通过调用远程系统的方法,主要进行必要数据的查询。
webservice三要素:soap,wsdl,uddi
soap:这个是简单对象传输协议就是通过http+xml进行数据的传输。
wsdl:是webservice的使用说明书 有五个节点:服务视图,服务协议和参数的描述,服务实现,参数描述,参数类型描述。
uddi:目录
现在实现webservice的主要有两种方式: jaxws,jaxrs
区别: 关于JAX-WS与JAX-RS两者是不同风格的SOA架构。前者以动词为中心,指定的是每次执行函数。而后者以名词为中心,每次执行的时候指的是资源。
这里主要说rs风格的开发。
jaxrs结合spring的开发流程:
spring环境的搭建
1.jar包的依赖

服务端:
接口介绍:
注解:
@GET:该方法可接受的调用类型为get方式
@POST:该方法可接受的调用类型为POST类型
@DELETE:删除操作请求
@PUT:修改操作请求
@Path("/path/{id}"):方法访问路径,id为get方式调用的占位符
@Produces({"application/xml","application/json"}):该方法可返回数据类型,注意虽然说该方法返回对象,但它的底层会自动转化成xml或json数据类型进行数据的返回。
@Consumes("application/json"):该方法可消费的数据类型
@PathParam("id"):占位符参数绑定到形参
就上面get,post,delete,put这四种请求方式,一般使用get和post来完成所需要的业务请求。
实现类:一般的接口实现就可以了,这里就略去了。不懂的可以留言。
在applicationContext.xml文件中发布服务

在web.xml文件中完成ws服务的配置并且加载spring的配置文件

在这里服务端就完成了,效果如下。

客户端:
1.环境的搭建
1.1jar包依赖

1.2在applicationContext.xml文件中配置客户端

编写测试类
get方式

这里是获取一个集合类型的,如果是对象类型使用get即可;执行效果省略。
path("/cxf-rs-ws-spring-server/services/userService/findAllUsers")
这个是get请求:仔细想想,get请求的参数都是在请求上链接的,而且有一定的大小限制,请求参数暴露与浏览器。
类似http://127.0.0.1:8080//cxf-rs-ws-spring-server/services/userService/findAllUsers?id=1&name='zhangsan'
但restful风格为:http://127.0.0.1:8080//cxf-rs-ws-spring-server/services/userService/1/zhangsan
参数的多少决定于服务端占位符的定义。
get请求方式基本应用就这么多。
post方式:

大部分情况下我们所进行的post请求;这里有什么好处可在网上查询。
这里讲下post(user)这里面的参数是请求体,当我们请求第三方接口时,许多请求数据我们可以进行封装,返回来的许多响应数据也
可以使用对象进行封装。
在讲下response,response主要有请求头,状态,请求体;response提供了很便捷的方法使得让我们将数据读到我们定义的实体类中,以上代码很清楚的写了获取实体类,获取请求头,获取状态码。具体调用可见response的方法。

猜你喜欢

转载自blog.csdn.net/qq_36720650/article/details/78859619