我目前正在尝试使用 JAX-RS
学习 Java REST
的基础知识。
在 this example 的 UserService
类(靠近底部)中@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
,程序如何知道要调用哪个方法?
最佳答案
资源类有方法
,当特定的HTTP
方法请求
时被调用
,称为资源方法
。为了创建将使用特定 HTTP 方法调用的 Java 方法,必须实现常规 Java 方法并使用 JAX-RS @HttpMethod
注释的注释之一进行注释 (即,@GET 、@POST、@PUT 和@DELETE)。
关于Java 休息 : @GET and @PUT at the same path?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35141291/