Java REST:@GET 和@PUT 在同一路径?
Java REST: @GET and @PUT at the same path?
我目前正在尝试使用 JAX-RS
学习 Java REST
的基础知识。
在 this example 的 UserService
class(靠近底部)中,有一个 @GET
和 @PUT
方法,具有相同的 @path
注释:
@GET
@Path("/users")
@Produces(MediaType.APPLICATION_XML)
public List<User> getUsers() {
return userDao.getAllUsers();
}
和
@PUT
@Path("/users")
@Produces(MediaType.APPLICATION_XML)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public String createUser(@FormParam("id") int id,
@FormParam("name") String name,
@FormParam("profession") String profession,
@Context HttpServletResponse servletResponse) throws IOException {
User user = new User(id, name, profession);
int result = userDao.addUser(user);
if(result == 1) {
return SUCCESS_RESULT;
}
return FAILURE_RESULT;
}
考虑到它们都指向 相同 @path
,程序如何知道 调用哪个 方法?
JAX-RS 评估请求的 HTTP method,然后调用 UserService 中适当的 Java 方法。
资源类有methods
当特定HTTP
方法requests
被制定时invoked
,称为资源methods
。为了创建将使用特定 HTTP 方法调用的 Java 方法,必须实现常规 Java 方法并使用 JAX-RS @HttpMethod
注释注释之一进行注释 (namely, @GET, @POST, @PUT, and @DELETE).
我目前正在尝试使用 JAX-RS
学习 Java REST
的基础知识。
在 this example 的 UserService
class(靠近底部)中,有一个 @GET
和 @PUT
方法,具有相同的 @path
注释:
@GET
@Path("/users")
@Produces(MediaType.APPLICATION_XML)
public List<User> getUsers() {
return userDao.getAllUsers();
}
和
@PUT
@Path("/users")
@Produces(MediaType.APPLICATION_XML)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public String createUser(@FormParam("id") int id,
@FormParam("name") String name,
@FormParam("profession") String profession,
@Context HttpServletResponse servletResponse) throws IOException {
User user = new User(id, name, profession);
int result = userDao.addUser(user);
if(result == 1) {
return SUCCESS_RESULT;
}
return FAILURE_RESULT;
}
考虑到它们都指向 相同 @path
,程序如何知道 调用哪个 方法?
JAX-RS 评估请求的 HTTP method,然后调用 UserService 中适当的 Java 方法。
资源类有methods
当特定HTTP
方法requests
被制定时invoked
,称为资源methods
。为了创建将使用特定 HTTP 方法调用的 Java 方法,必须实现常规 Java 方法并使用 JAX-RS @HttpMethod
注释注释之一进行注释 (namely, @GET, @POST, @PUT, and @DELETE).