api idea 开发rest_使用IDEA 搭建基于jersey的RESTful api

环境准备:

Intellij IDEA

tomcat 7

1. 创建项目

创建一个web Application项目

创建完成后,使用Add Frameworks Support把maven项目的支持引入。

在项目上右键:

到此为止就已经成功创建了一个web项目了。

2. 项目配置

2.1 Maven配置

修改pom.xml,引入Jersey相关jar包

org.glassfish.jersey.containers

jersey-container-servlet

2.25

2.2 web配置

修改web.xml

JAX-RS Servlet

org.glassfish.jersey.servlet.ServletContainer

jersey.config.server.provider.packages

com.hlzf.hellojersey

1

JAX-RS Servlet

/api/*

其中com.hlzf.hellojersey对应放置restful demo代码的包,/api/对应的是restful api映射的地址,一般我们不把这个地址设为/*,因为这样会覆盖默认的index地址,除非你自己重新定义了首页地址。

2.3 编写逻辑代码

在com.hlzf.hellojersey下新建Hello.java文件。

packagecom.hlzf.hellojersey;importjavax.ws.rs.GET;importjavax.ws.rs.POST;importjavax.ws.rs.Path;importjavax.ws.rs.Produces;importjavax.ws.rs.core.MediaType;/**@Path 对应的是restful api的子路劲,比如前面配置的是/api/*,则访问该API的路径就是https//:ip:port/api/hello

@GET @POST 对应的是请求资源用的HTTP方法

@Produces 表示返回的数据类型,如MediaType.TEXT_PLAIN对应返回文本类型*/@Path("hello")public classHello {

@GET

@Produces(MediaType.TEXT_PLAIN)publicString sayHello(){return "Hello,I am text!";

}

@POST

@Produces(MediaType.TEXT_XML)publicString sayXMLHello() {return "<?xml version=\"1.0\"?>" + " Hello,I am xml!" + "";

}

@GET

@Produces(MediaType.TEXT_HTML)publicString sayHtmlHello() {return " " + "

" + "Hello Jersey" + ""

+ "

" + "Hello,I am html!" + "

" + " ";

}

}

3. 启动项目

将maven引入的jar包放到lib文件夹下。

点击File->Project Structure

在tomcat中引入项目,启动

使用网页进行get请求:

4. 发布war包

打包完成后,在out目录找到war包 :

5. 带参数的api接口设计

5.1 @PathParam

使用该注释获取参数时可以获取URI中制定规则的参数

//该类的路径为/user

@GET

@Path("{username"})

@Produces(MediaType.APPLICATION_JSON)public User getUser(@PathParam("username") String userName) {

//...

}

5.2 @QueryParam

该参数用于获取Get请求中的查询参数,和上一个的区别是它是通过URL中的?符号来实现的。

@GET

@Path("/user")

@Produces("text/plain")public User getUser(@QueryParam("name") String name, @QueryParam("age") intage) {

//...

}

5.3 @FormPara

从Post请求的表单中获取数据

@POST

@Consumes("application/x-www-form-urlencoded")

publicvoid post(@FormParam("name") String name) {//

}

5.4 默认参数值DefaultValue

在函数获取参数时参数有一个默认值,那么就可以使用该注释,它的使用方法如下:

@GET

@Path("/user")

@Produces("text/plain")public User getUser(@QueryParam("name") String name, @DefaultValue("26") @QueryParam("age") intage) {

//...

}

5.5 使用Map的参数@Context

在一个大型的server中,由于参数的多变,参数结构的调整很容易遇到问题,这时候就可以考虑使用@Context来进行注释了。例子如下:

@GETpublicString get(@Context UriInfo ui) {

MultivaluedMap queryParams =ui.getQueryParameters();

MultivaluedMap pathParams =ui.getPathParameters();

}

6. 参考链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值