java - Jersey WebService 具有扁平路径结构?

标签 java web-services rest jersey

我目前正在编写一个具有多个基于 Jersey 的 Web 服务的应用程序。看起来过于复杂的一件事是我用来调用它们的路径。

例如,用户收到了别人的包裹,并想让别人知道这一点。这一切都应该由一个基本端点 ParcelEndpoint 处理。

我按如下方式初始化端点:

@ApplicationPath("parcel4u")
public class RefApp extends Application {
    public Set<Class<?>> getClasses() {
        final Set<Class<?>> returnValue = new HashSet<Class<?>>();
        returnValue.add(ParcelEndpoint.class);
        return returnValue;
    }
}

因此 /parcel4u/ 中的所有内容都将是 WebService 的方法。

当我尝试为 RefApp 的每个方法提供它自己的@Path(但不是类本身)时,没有找到任何方法。我必须给类提供 @Path 和每个方法。它看起来像这样:

@Path("rest")
public class ParcelEndpoint {
    @GET
    @Path("received")
    @Produces(MediaType.TEXT_PLAIN)
    public String received(@PathParam("userid") String forUser){
        return "received!";
    }

    @GET
    @Path("found")
    @Produces(MediaType.TEXT_PLAIN)
    public String found(@PathParam("userid") String forUser){
        return "found!";
    }
}

所以我可以调用/parcel4u/rest/received/parcel4u/rest/found。有没有办法跳过“其余”部分?

最佳答案

您可以使用 @Path("/") 注释您的类,然后使用 @Path("received")@Path 注释您的方法(“找到”)我想。

关于java - Jersey WebService 具有扁平路径结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33148474/

相关文章:

java - 如果类被修改,是否重新生成 Web 服务客户端 stub ?

java - 无法将按钮添加到 Android ActionBar API 21

java - Spring 4 vs Jersey 用于 REST Web 服务

java - Java类中的默认字段修饰符是什么?

c# - 寻找带有 JSON 客户端库的 REST

json - 使用 angularjs 进行 django-rest 分页

php - REST 风格的 URLS 和 PHP

python - Netsuite REST Web 服务 API GET 请求,在 Postman 之外

java - 如何在 Java 中将一个 JSON 字符串拆分为两个 JSON 对象

java - 对于 JavaFX Canvas 多线程,我应该使用什么方法?