5

我正在编写 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){

}

我怎样才能为上述方法编写一个网络方法?

谢谢!

4

1 回答 1

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. 您可以混合使用PathParams 和RequestParams。

于 2013-12-23T13:15:34.677 回答