首先补充一下什么是 Restful ,这里简单说一下,如果一个架构符合REST原则,就称它为RESTful架构。
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 接口传递参数相关推荐

  1. python 接口传递参数params | data | json

    params 使用params传递参数主要是用于get请求,传递的参数会自动拼接到链接中. data = {'btypeId': 15} res = requests.get(url=self.url ...

  2. 前端请求restful风格接口怎么传参_Restful 接口传递参数

    首先补充一下什么是 Restful ,这里简单说一下,如果一个架构符合REST原则,就称它为RESTful架构. RESTful架构特点: (1)每一个URI代表一种资源: (2)客户端和服务器之间, ...

  3. 三种方法实现调用Restful接口

    1.基本介绍 Restful接口的调用,前端一般使用ajax调用,后端可以使用的方法比较多, 本次介绍三种: 1.HttpURLConnection实现 2.HttpClient实现 3.Spring ...

  4. restful接口设计规范学习

    1.接口编程 1 背景 随着互联网的发展, 尤其是移动互联为代表的Web3.0时代. 客户端层出不穷, 以APP.微信.PC浏览器为代表, 服务端业务逻辑是基本一致的.那么有没有一种方式可以做到&qu ...

  5. 什么是Restful接口

    1.rest的基础知识? 是web服务的一种设计风格.是http动作与服务功能结合的创新. 简洁.容易理解.约定了规则. 实现: 1.用URI表示1种资源,只用名词表示资源,不要动作: 2.用http ...

  6. RestFul接口设计

    一.接口编程 1.背景 随着互联网的发展,尤其是移动互联网为代表的Web3.0时代,客户端层出不穷,以APP.微信.PC浏览器为代表,服务端业务逻辑基本一致的,那么有没有一种方式可以做到"服 ...

  7. ajax对接接口属性,ajax调用restful接口

    ajax调用restful接口 内容精选 换一换 ROMA API提供了API服务能力,通过API服务把后端服务封装成标准RESTful格式API,并开放给其他用户使用.目前支持三种创建服务方式:创建 ...

  8. java创建restful接口,三种方法实现java调用Restful接口

    转自:https://www.cnblogs.com/taozhiye/p/6704659.html 引言:当前,web开发中第三方接口的选择往往是在restful接口和web service 接口 ...

  9. vue项目构建实战基础知识:SPA理解/RESTful接口介绍/static目录配置/axios封装/打包时map文件去除...

    一.SPA 不是指水疗.是 single page web application 的缩写.中文翻译为 单页应用程序 或 单页Web应用,更多解释请自行搜索. 所有的前端人员都应该明白我们的页面的 u ...

  10. Antd-Design List渲染列中Button 点击事件 传递参数

    背景:使用List 渲染的后台数据列表中,点击删除按钮,可以将该项对应的主键传递给函数 点击删除的时候,将该条商品记录对应的id 传递给函数,通过调用后台接口删除  可以看到的是关键代码: onCli ...

最新文章

  1. 光耦p621引脚图_开关电源中光耦电路的设计与优点
  2. 亚马逊刊登php代码,最全的亚马逊刊登listing工具了解一下
  3. CentOS 7下编译安装Open Babel2.4.1和python绑定
  4. 从程序员到CTO都应该了解的一些技术趋势
  5. Comparable、Iterator接口和Collections类的实现方法
  6. python中os操作文件及文件路径
  7. 如何使用 Python 将图片变为字符的模样
  8. redis-集群(cluster)扫盲篇(一)
  9. java中map、list转json
  10. HCIP认证学习day2
  11. instr,left,mid 定位、取内容(字符串)函数
  12. 查询rssi指令_h3c无线控制器常用命令(wx)
  13. Entrust Datacard宣布与IBM Security开展目标远大的合作,以助力确保移动工作人员安全
  14. 十二小时制和二十四小时制之间的区别
  15. 拷贝主机文件到VirtualBox虚拟机
  16. javascript 获取具体id
  17. 中建普联:大数据在工程造价中的应用
  18. 微信小程序之会议预约管理系统(含源码+论文+答辩PPT等)
  19. python 键盘钩子_WPF 利用键盘钩子来捕获键盘,做一些不为人知的事情...完整实例...
  20. 基于stc15f2k60s2芯片单片机编程(时钟DS1302)

热门文章

  1. itest考试系统破解 解决复制粘贴限制
  2. 2015年ps计算机试题,2015年计算机一级考试《PS》模拟试题及答案(一)(2)
  3. 细粒度分类:Hierarchical Bilinear Pooling(HBP),分级双线性池化(一)
  4. python求15 17 23 65 97的因数_Python练习题
  5. 一文搞懂 UndeclaredThrowableException
  6. 面试后要请你吃饭_面试官发出这5个信号,暗示你面试基本成功了,请做好准备!...
  7. 利用第三方软件识别图片文字并转换为文本
  8. 数字绘画技术,从数位板到数位屏
  9. vnc远程软件,盘点六款你值得拥有的vnc远程软件
  10. 【环境配置】Ubuntu18.04配置高通骁龙神经处理引擎(SNPE)