我正在编写Jersey RESTful Web服务。我有两种网络方法。
@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);
}
}
现在我需要再编写一个web方法,它接受两个参数,一个是id,另一个是name。它应该如下。
public Person fetchPerson(String id, String name){
}
如何为上述方法编写Web方法?
谢谢!
答案 0 :(得分:18)
您有两种选择 - 您可以将它们放在路径中,也可以将其作为查询参数。
即。你想要它看起来像:
/{id}/{name}
或
/{id}?name={name}
对于第一个只做:
@GET
@Path("/{id}/{name}")
@Produces({MediaType.APPLICATION_XML})
public Person fetchPerson(
@PathParam("id") Integer id,
@PathParam("name") String name) {
return personService.fetchPerson(id);
}
对于第二个,只需将名称添加为RequestParam
即可。您可以混合使用PathParam
和RequestParam
s。