在此示例中,服务的URL格式为/projection/projectionId:

@Stateless
@Path("projection")
public class ProjectionManager {

@Inject
private ProjectionDAO projectionDAO;

@Inject
private UserContext userContext;

@GET
@Path("{projectionId}")
@Produces("application/json")
public String places(@PathParam("projectionId") String projectionId) {
    return projectionDAO.findById(Long.parseLong(projectionId)).getPlaces().toString();
}}

如何使用以下代码传递两个(或多个)查询参数来访问服务:

@PUT
@Path("/buy")
public Response buyTicket(@QueryParam("projectionId") String projectionId, @QueryParam("place") String place) {
    Projection projection = projectionDAO.findById(Long.parseLong(projectionId));
    if(projection != null) {
        projectionDAO.buyTicket(projection, userContext.getCurrentUser(), Integer.parseInt(place));
    }

    return Response.noContent().build();
}

最佳答案

/buy?projectionId=value1&place=value2

查看https://en.wikipedia.org/wiki/Query_string以获取更多信息。而且由于它是HTTP PUT,因此您不能简单地在浏览器中打开该URL,因此您可以编写一些简单的REST客户端或使用浏览器扩展(例如Chrome中的Postman)。

07-24 09:17