新手来了。我有一个REST服务,如下所示:
@GET
@PATH("/{id}/headerinfo")
@Produces({ JSON, XML})
public Response getRequestHEADER(@PathParam("id") long id) {
Request result = em.find(Request.class, id);
...
return Response.ok(entity).build();这是我对它的调用,它给我带来了问题:
@Path("") //what should go here?
public class AaRestCall
public static String subTrackNum (String trackNum) throws IOException {
try {
Client client = Client.create();
WebResource webResource = client.
resource("https://url/rest/request/" + trackNum);
ClientResponse response = webResource.
accept("application/json").get(ClientResponse.class);
String output = response.getEntity(String.class);
return output;
}
catch some stuff here
}我有几个问题:
1) @Path参数中包含什么内容?
2) webResource给了我一个错误,当作为webResource.accept调用时,它无法解决。我不清楚为什么。
3)任何额外的技巧都将不胜感激,因为这是我第一次调用REST,也是第一次使用jersey。
发布于 2014-08-28 23:08:31
修饰类的路径参数将是基URI,例如@Path("/"),那么类中的方法将是/之后的特定uri的路径参数,例如@Path("test")
发布于 2017-05-04 18:25:51
虽然这是一篇老文章,但我还是要评论一些观点。
1) @Path参数中包含什么内容?
据我所知,下面的一个是你的服务器端,我的意思是服务
@GET @PATH("/{id}/headerinfo") @Produces({ JSON,XML})公共响应getRequestHEADER(@PathParam("id") long id) { Request result = em.find(Request.class,id);...return Response.ok(entity).build();
然而,第二个是你的客户端;
@Path("") //这里应该放什么?公共类客户端公共静态字符串subTrackNum (String trackNum)抛出IOException {IOException{ Client client = Client.create();WebResource webResource = client.resource("https://url/rest/request/“+ trackNum);ClientResponse响应= webResource。accept("application/json").get(ClientResponse.class);字符串输出= response.getEntity(String.class);返回输出;}在此处捕获一些内容}
因此,您不需要添加
路径(“”)
对于有客户端请求的客户端类或function.Because,您调用的API具有自己的模式url,如/service/list,因此客户端使用此服务,这意味着不需要任何路径,除非您不开发一种在两个API之间提供集成的适配器。(这是一个不成问题的概念,不要坚持太多)。
2) webResource给了我一个错误,当作为webResource.accept调用时,它无法解决。我不清楚为什么。
webResource.accept(...)的基本功能添加了接受的响应媒体类型,如json,xml,文件等。因此,您应该对此进行更详细的描述。
3)任何其他技巧都将不胜感激,因为这是我第一次调用REST,也是第一次使用jersey。
您可以查看一个用于REST的框架,即Jersey
https://stackoverflow.com/questions/25552060
复制相似问题