javax.ws.rs注解:@Conumes 和 @Produces等
程序员文章站
2024-03-25 17:07:58
...
转载地址:http://blog.csdn.net/zhengchao1991/article/details/54375626
3、@
如果需要为参数设置默认值,可以使用
问:MIME类型是什么? 答:MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。
1、概述
@Consumes
注释代表的是一个资源可以接受的
MIME 类型。
@Produces
注释代表的是一个资源可以返回的
MIME 类型。
这些注释均可在资源、资源方法、子资源方法、子资源定位器或子资源内找到。
2、@Produces:返回的类型
a.返回给client字符串类型(text/plain)
- @Produces(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
b.返回给client为json类型(application/json)
- @Produces(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
测试:
string类型:
- @Path(“/say”)
- @GET
- @Produces(MediaType.TEXT_PLAIN)
- public String say() {
- System.out.println(”hello world”);
- return “hello world”;
- }
@Path("/say")
@GET
@Produces(MediaType.TEXT_PLAIN)
public String say() {
System.out.println("hello world");
return "hello world";
}
json和bean类型:
- @Path(“test”)
- @GET
- @Produces(MediaType.APPLICATION_JSON)
- public Result<String> test() {
- Result<String> result = new Result<String>();
- result.success(”aaaaaa”);
- return result;
- }
- @Path(“bean”)
- @GET
- @Produces(MediaType.APPLICATION_JSON)
- public UserBean bean() {
- UserBean userBean = new UserBean();
- userBean.setId(1);
- userBean.setUsername(”fengchao”);
- return userBean;
- }
@Path("test")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Result<String> test() {
Result<String> result = new Result<String>();
result.success("aaaaaa");
return result;
}
@Path("bean")
@GET
@Produces(MediaType.APPLICATION_JSON)
public UserBean bean() {
UserBean userBean = new UserBean();
userBean.setId(1);
userBean.setUsername("fengchao");
return userBean;
}
3、@
Consumes
@Consumes
与@Produces
相反,用来指定可以接受client发送过来的MIME类型,同样可以用于class或者method,也可以指定多个MIME类型,一般用于@PUT
,@POST
a.接受client参数为字符串类型
@Consumes(MediaType.TEXT_PLAIN) b.接受clent参数为json类型@Consumes(MediaType.APPLICATION_JSON)
其他注解:
@PathParam
获取url中指定参数名称:
- @GET
- @Path(“{username”})
- @Produces(MediaType.APPLICATION_JSON)
- public User getUser(@PathParam(“username”) String userName) {
- …
- }
@GET
@Path("{username"})
@Produces(MediaType.APPLICATION_JSON)
public User getUser(@PathParam("username") String userName) {
...
}
@QueryParam
获取get请求中的查询参数:
- @GET
- @Path(“/user”)
- @Produces(“text/plain”)
- public User getUser(@QueryParam(“name”) String name,
- @QueryParam(“age”) int age) {
- …
- }
@GET
@Path("/user")
@Produces("text/plain")
public User getUser(@QueryParam("name") String name,
@QueryParam("age") int age) {
...
}
如果需要为参数设置默认值,可以使用@DefaultValue
,如:
- @GET
- @Path(“/user”)
- @Produces(“text/plain”)
- public User getUser(@QueryParam(“name”) String name,
- @DefaultValue(“26”) @QueryParam(“age”) int age) {
- …
- }
@GET
@Path("/user")
@Produces("text/plain")
public User getUser(@QueryParam("name") String name,
@DefaultValue("26") @QueryParam("age") int age) {
...
}
@FormParam
获取post请求中表单中的数据:
- @POST
- @Consumes(“application/x-www-form-urlencoded”)
- public void post(@FormParam(“name”) String name) {
- // Store the message
- }
@POST
@Consumes("application/x-www-form-urlencoded")
public void post(@FormParam("name") String name) {
// Store the message
}
@BeanParam
获取请求参数中的数据,用实体Bean进行封装
- @POST
- @Consumes(“application/x-www-form-urlencoded”)
- public void update(@BeanParam User user) {
- // Store the user data
- }
@POST
@Consumes("application/x-www-form-urlencoded")
public void update(@BeanParam User user) {
// Store the user data
}
1、概述
@Consumes
注释代表的是一个资源可以接受的
MIME 类型。
@Produces
注释代表的是一个资源可以返回的
MIME 类型。
这些注释均可在资源、资源方法、子资源方法、子资源定位器或子资源内找到。
2、@Produces:返回的类型
a.返回给client字符串类型(text/plain)
- @Produces(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
b.返回给client为json类型(application/json)
- @Produces(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
测试:
string类型:
- @Path(“/say”)
- @GET
- @Produces(MediaType.TEXT_PLAIN)
- public String say() {
- System.out.println(”hello world”);
- return “hello world”;
- }
@Path("/say")
@GET
@Produces(MediaType.TEXT_PLAIN)
public String say() {
System.out.println("hello world");
return "hello world";
}
json和bean类型:
- @Path(“test”)
- @GET
- @Produces(MediaType.APPLICATION_JSON)
- public Result<String> test() {
- Result<String> result = new Result<String>();
- result.success(”aaaaaa”);
- return result;
- }
- @Path(“bean”)
- @GET
- @Produces(MediaType.APPLICATION_JSON)
- public UserBean bean() {
- UserBean userBean = new UserBean();
- userBean.setId(1);
- userBean.setUsername(”fengchao”);
- return userBean;
- }
@Path("test")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Result<String> test() {
Result<String> result = new Result<String>();
result.success("aaaaaa");
return result;
}
@Path("bean")
@GET
@Produces(MediaType.APPLICATION_JSON)
public UserBean bean() {
UserBean userBean = new UserBean();
userBean.setId(1);
userBean.setUsername("fengchao");
return userBean;
}
3、@
Consumes
@Consumes
与@Produces
相反,用来指定可以接受client发送过来的MIME类型,同样可以用于class或者method,也可以指定多个MIME类型,一般用于@PUT
,@POST
a.接受client参数为字符串类型
@Consumes(MediaType.TEXT_PLAIN) b.接受clent参数为json类型@Consumes(MediaType.APPLICATION_JSON)
其他注解:
@PathParam
获取url中指定参数名称:
- @GET
- @Path(“{username”})
- @Produces(MediaType.APPLICATION_JSON)
- public User getUser(@PathParam(“username”) String userName) {
- …
- }
@GET
@Path("{username"})
@Produces(MediaType.APPLICATION_JSON)
public User getUser(@PathParam("username") String userName) {
...
}
@QueryParam
获取get请求中的查询参数:
- @GET
- @Path(“/user”)
- @Produces(“text/plain”)
- public User getUser(@QueryParam(“name”) String name,
- @QueryParam(“age”) int age) {
- …
- }
@GET
@Path("/user")
@Produces("text/plain")
public User getUser(@QueryParam("name") String name,
@QueryParam("age") int age) {
...
}
如果需要为参数设置默认值,可以使用@DefaultValue
,如:
- @GET
- @Path(“/user”)
- @Produces(“text/plain”)
- public User getUser(@QueryParam(“name”) String name,
- @DefaultValue(“26”) @QueryParam(“age”) int age) {
- …
- }
@GET
@Path("/user")
@Produces("text/plain")
public User getUser(@QueryParam("name") String name,
@DefaultValue("26") @QueryParam("age") int age) {
...
}
@FormParam
获取post请求中表单中的数据:
- @POST
- @Consumes(“application/x-www-form-urlencoded”)
- public void post(@FormParam(“name”) String name) {
- // Store the message
- }
@POST
@Consumes("application/x-www-form-urlencoded")
public void post(@FormParam("name") String name) {
// Store the message
}
@BeanParam
获取请求参数中的数据,用实体Bean进行封装
- @POST
- @Consumes(“application/x-www-form-urlencoded”)
- public void update(@BeanParam User user) {
- // Store the user data
- }
@POST
@Consumes("application/x-www-form-urlencoded")
public void update(@BeanParam User user) {
// Store the user data
}
上一篇: 浅谈RESTful API设计风格
下一篇: RESTful风格设计API接口