我正在使用Jersey Restful webservices。我有以下网络方法来获得结果。
@Path("/persons")
public class PersonWS {
private final static Logger logger = LoggerFactory.getLogger(PersonWS.class);
@Autowired
private PersonService personService;
@GET
@Path("/{id}")
@Produces({MediaType.APPLICATION_XML})
public Person fetchPerson(@PathParam("id") Integer id) {
return personService.fetchPerson(id);
}
@DELETE
@Path("/{id}")
public void deletePerson(@PathParam("id") Integer id) {
return personService.deletePerson(id);
}
}
在上面的Jersey RESTful webservice中,我有两个web方法,一个用于获取,另外一个用于删除,具有相同数量的参数。 在上述情况下是否存在歧义?如果不是这两种方法的URI应该是什么?谢谢!
谢谢!
答案 0 :(得分:2)
由于HTTP方法不同(GET
vs DELETE
),因此不存在歧义。
使用HTTP方法PUT
答案 1 :(得分:2)
Jersey decides根据请求中指定的HTTP method调用哪种方法。如果您使用与GET
相同的HTTP方法使用多个方法,则会选择更多注释,例如Consumes
或Produces
等。
顺便说一句:如果您对所有端点使用URI /persons/{id}
,那么您可以使用@Path("/persons/{id}")
注释您的类,而不是使用此子URI注释每个方法。
答案 2 :(得分:0)
由于使用的HTTP方法不同,即GET和DELETE,因此没有歧义 并且网址与所需的参数相同
是“id”在Jersey客户端程序中使用GET http方法获取人员信息,使用DELETE http方法删除此人。