Restful 接口传递参数
来源:互联网 发布:电脑笛子软件 编辑:程序博客网 时间:2024/04/30 20:37
RESTful架构特点:
(1)每一个URI代表一种资源;
(2)客户端和服务器之间,传递这种资源的某种表现层;
(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。
具体介绍参考:
RESTful API 设计指南
RESTful架构简介
一:没有 对象类型 的多参数传递
@POST
@Path("/addFavor/")
void addFavor(@QueryParam("linkId") String linkId, @QueryParam("userId") List<String> userId,
@QueryParam("favorTypeCode") String favorTypeCode, @QueryParam("linkTable") String linkTable);
另一种方式可以通过 @PathParam 注解参数,这种方式要在 URL 地址后面声明 如:/{id},多参:/{id}{aaa}{bbb}
@GET
@Path("/{id}")
@ApiMethod(path = "/api/rest/category/{id}", verb = ApiVerb.GET, description = "get category by id", produces = { MediaType.APPLICATION_JSON }, consumes = { MediaType.APPLICATION_JSON })
@ApiResponseObject
Category get(@ApiPathParam(name = "id", description = "The Category id") @PathParam("id") String id);
二:包含 对象类型 的多参传递
需要在对象前声明 @ApiBodyObject
@POST
@Path("/addFavor/")
void addFavor(@QueryParam("linkId") String linkId, @ApiBodyObject User user,
@QueryParam("favorTypeCode") String favorTypeCode, @QueryParam("linkTable") String linkTable);
@ApiBodyObject 相当于 SpringMVC 的 @RequestBody
参数注解的作用就是将 xml/json (具体那种看配置,cxf 是json) 转换为实体对象如 User 传递给实现方法,如下:
@Override
@Transactional(readOnly = false)
public void addFavor(String linkId, User user, String favorTypeCode, String linkTable) {
}
三:多 对象参数 传递
Restful 仅支持多个参数中,最多只能有一个是对象参数,就比如一个 Form 表单中只能提交一个对象
解决办法:将多个对象参数封装到一个大对象中,比如新建一个 VO 把这些对象参数都放进去,或者放到Map,List 这些也行
四:Jersey
上面的代码基于 Jersey 框架实现,下面来说说 Jersey 与 RESTful 的关系:
开发 RESTful WebService 意味着支持在多种媒体类型以及抽象底层的客户端-服务器通信细节,如果没有一个好的工具包可用,这将是一个困难的任务
为了简化使用Java开发 RESTful WebService 及其客户端,一个轻量级的标准被提出:JAX-RS API
Jersey RESTful WebService框架是一个开源的、产品级别的JAVA框架,支持JAX-RS API并且是一个JAX-RS(JSR 311和 JSR 339)的参考实现
Jersey不仅仅是一个JAX-RS的参考实现,Jersey提供自己的API,其API继承自JAX-RS,提供更多的特性和功能以进一步简化RESTful service和客户端的开发
Reference:
http://blog.csdn.net/aitcax/article/details/53097562
http://www.tuicool.com/articles/32yYvm
http://liugang594.iteye.com/blog/1496651
http://blog.csdn.net/bapinggaitianli/article/details/46518705
- Restful 接口传递参数
- Jersey开发Restful的文件上传接口如何传递数组参数
- JAVA接口作为参数传递
- 接口作为参数传递、返回
- C#接口作为传递参数
- 接口测试传递数组参数
- springmvc创建restful接口通过HttpURLConnection创建连接传递数据
- springmvc创建restful接口通过HttpURLConnection创建连接传递数据
- restful接口
- Jersey写Restful接口获取参数的问题
- Restful接口传入多参数的问题和解决方案
- springmvc 框架下使用restful接口参数数据传输
- Jersery Restful接口服务接收JSON对象的参数请求
- Jersey写Restful接口获取参数的问题
- 在接口函数中传递数组参数
- c#接口作为参数传递、返回
- Jni接口-深入研究参数的传递
- Java接口之作为参数传递
- 【51Nod】1181 质数中的质数(质数筛法)
- 好用的排序函数-qsort解析及代码程序示例
- Java合并jar包方法
- jar命令解析
- Hadoop环境搭建及WordCount实验详解
- Restful 接口传递参数
- MySql存储日期类型用int、datetime还是varchar?
- 结合找工作浅谈写博客的感受
- 商超霸主之争:天猫节节败退 沦为京东陪练
- 工程基础
- SITF特征提取和描述
- Hadoop--HDFS
- C++ explicit关键字详解
- 输出所有的最长公共子序列