我正在创建REST Web服务,我想知道我们如何创建一个带有输入参数的服务,以及如何从Web浏览器调用它。
比如说
@Path("/todo")
public class TodoResource {
// This method is called if XMLis request
@PUT
@Produces( {MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
public Todo getXML() {
Todo todo = new Todo();
todo.setSummary("This is my first todo");
todo.setDescription("This is my first todo");
return todo;
}
我可以使用http://localhost:8088/JerseyJAXB/rest/todo调用它
我想创建一个方法
@Path("/todo")
public class TodoResource {
// This method is called if XMLis request
@PUT
@Produces( {MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
public Todo getXML(String x, String y) {
Todo todo = new Todo();
todo.setSummary(x);
todo.setDescription(y);
return todo;
}
如果是基于soap的web服务,我会像这样调用它。
http://localhost:8088/JerseyJAXB/rest/todo?x=abc&y=pqr
但我想知道如何使用rest调用它,以及我是否可以像在上面的示例中使用rest和jersey那样传递参数。
5条答案
按热度按时间lvmkulzt1#
你可以试试这样的方法:
然后使用此URL调用您的服务;
http://localhost:8088/JerseyJAXB/rest/todo/summary/description
kxe2p93d2#
如果需要查询参数,请使用
@QueryParam
。但是你不能从普通的网页浏览器发送PUT(现在),如果你直接输入URL,它将是一个GET。
在REST中,通常要么POST到一个公共资源
/todo
,在那里该资源创建并返回一个新资源,要么PUT到一个特定标识的资源,比如/todo/<id>
,用于创建和/或更新。hi3rlvi23#
要小心。为此,您需要@GET(而不是@PUT)。
b5buobof4#
另一种方法是获取UriInfo而不是所有QueryParam
然后,您将能够根据需要在代码中获取queryParam
8mmmxcuj5#
您可以尝试此操作...将参数设置为:
浏览器中的http://localhost:8080/WebApplication11/webresources/generic/getText?arg1=hello ...