Jersey中@PathParam和@QueryParam的区别
来源:互联网 发布:中文域名网站 编辑:程序博客网 时间:2024/06/05 07:57
前言
图书馆项目controller层代码是由swagger工具定义好的api生成的,在实现接口的时候,出现了@PathParam和@QueryParam,这两个都可以实现功能,究竟有什么不一样呢?
正文
Jersey RESTful 框架是开源的RESTful框架,实现了JAX-RS规范。它是基于Java的一个轻量级RESTful风格的Web Services框架。Jsersey中有几种常用的接收参数的注解:
@PathParam 、@QueryParam 、@FormPaem 、@FormDataParm,本文重点来说一下前两个注解。
@PathParam 注解
使用@PathParam 可以获取URI中指定规则的参数。
例子:
//分页查询所有图书信息 @GET @Path("/getAllbook/{pageNum}/{pageSize}") @Produces({ "application/json" }) @ApiOperation(value = "获取图书信息", notes = "根据查询条件获取图书信息 ", response = Book.class, responseContainer = "List", tags="Android") @ApiResponses(value = { @ApiResponse(code = 200, message = "获得所有分类", response = Book.class), @ApiResponse(code = 400, message = "Not Found", response = Book.class) }) public Response getAllbookType(@io.swagger.annotations.ApiParam(value = "图书分类",required=true) @DefaultValue("1") @PathParam("pageNum") int pageNum, @DefaultValue("10") @PathParam("pageSize") int pageSize , @Context SecurityContext securityContext) throws NotFoundException { List<TBook> list = TBookRepository.findAll(); return Optional.ofNullable(list) .map(result -> Response.status(Response.Status.OK).entity(new PaginationEntity(pageNum, pageSize, list)).build()) .orElse(Response.status(Response.Status.NO_CONTENT).build()); }
请求方式:url中直接在斜杠后添加参数值
@QueryParam注解
使用@QueryParam用于获取GET请求中的查询参数,定义路径中的参数信息,每一个参数都对应一个子资源。
例子:
//根据isbn查询图书信息@GET //标注类和方法请求的路径,@PathParam和@Path配合使用 @Path("/findBookDetailsByIsbn/{isbn}") //指定将要返回给client端的数据标识类型为json @Produces({ "application/json" }) @ApiOperation(value = "点击某本书进入书的详情页", notes = "根据书的书号,查找书的简介,目录,出版社,图书分类 ", response = Book.class, responseContainer = "List", tags="Admin") @ApiResponses(value = { @ApiResponse(code = 200, message = "获得查询结果", response = Book.class), @ApiResponse(code = 400, message = "Not Found", response = Book.class) }) public Response findBookDetailsByIsbn(@ApiParam(value = "图书的ISBN编号",required=true) @QueryParam("isbn") String isbn,@Context SecurityContext securityContext) throws NotFoundException { List<TBookBasic> list = BookService.findBookDetailsByIsbn(isbn); return Optional.ofNullable(list) .map(result -> Response.status(Response.Status.OK).entity(list).build()) .orElse(Response.status(Response.Status.NOT_FOUND).build()); }
请求方式:url中在后面添加“键值对”形式的参数,该注解定义查询参数,表明是一个查询条件,查询参数组成了查询条件。
PS:注解@QueryParam还可以和@DefaultValue一起使用,@DefaultValue表示预置一个默认值,当请求中不包括该参数时使用这个默认值。
Jersey常用注解
Jersey官方文档
https://jersey.github.io/
总结
知识的学习在不知不觉中,欢迎大家拍砖。
阅读全文
0 0
- Jersey中@PathParam和@QueryParam的区别
- jersey中@QueryParam和@PathParam参数说明
- @QueryParam和@PathParam的区别
- @QueryParam和@PathParam比较以及@PathParam和斜杠/的渊源
- @QueryParam和@PathParam比较
- @PathParam 和 @QueryParam
- @QueryParam和@PathParam比较
- @PathParam 和 @QueryParam
- @QueryParam和@PathParam比较
- 【java】--@PathParam 和@QueryParam
- Jersey 入门与Javabean @QueryParam @PathParam @FormParam
- Jersey 入门与Javabean @QueryParam @PathParam @FormParam
- @QueryParam和@PathParam使用方法比较
- @PathParam @QueryParam
- Jersey 写restful接口时QueryParam ,FormParam 等的区别
- WebService CXF-RS技术之@Pathparam与@Queryparam注解区别
- @QueryParam和@PathParam比较 (2011-12-11 22:39:15)
- webservice里的@queryparam、@pathparam、@DefaultValue使用介绍
- mysql语句中的执行顺序
- oracle在unix环境下重启(备忘命令)
- c#实验解答(1)
- 微服务介绍 :Introduction to Microservices
- APUE第十二章学习笔记
- Jersey中@PathParam和@QueryParam的区别
- 【Struts】值栈详解
- 易理解的轮播效果
- Google pie chart 插件的使用
- SpringBoot HelloWorld
- 商家后台页面密码修改问题—采用button提交数据,后端servlet一直取不到值
- py day04
- python 接口自动化测试--框架整改(五)
- java.lang.IndexOutOfBoundsException: No group 2