【问题标题】:Restful Path Usage with "/"带有“/”的宁静路径用法
【发布时间】:2014-09-24 11:17:02
【问题描述】:

@Path 是否有以“/”开头的值和没有它的区别

我已经测试了这两种用法,都可以正常工作。

@Path("message")
public class MessageServices {

    @PUT
    @Path("sendsms")
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces({MediaType.APPLICATION_JSON})
    public Response sendSms() {
        //....
    }

}



@Path("/message")
public class MessageServices {

    @PUT
    @Path("/sendsms")
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces({MediaType.APPLICATION_JSON})
    public Response sendSms() {
        //....
    }

}

【问题讨论】:

    标签: java rest path uri


    【解决方案1】:

    我从来没有看到任何不同。 @Path (http://docs.oracle.com/javaee/7/api/javax/ws/rs/Path.html) 的文档说:

    路径是相对的。对于带注释的类,基本 URI 是应用程序路径,请参阅 ApplicationPath。对于带注释的方法,基本 URI 是包含类的有效 URI。为了根据基本 URI 绝对化路径,路径中的前导“/”被忽略,基本 URI 被视为以“/”结尾。

    所以应该没有区别。

    【讨论】:

      【解决方案2】:

      根据this教程:

      @Path 值不需要有前导或尾随斜杠 (/)。 JAX-RS 运行时解析 URI 路径模板是否相同 它们有前导或尾随空格。

      所以看起来没有区别。

      附:我曾经见过一个与 JAX-RS 运行时本身没有直接关系的细微差别。一个有缺陷的文档生成框架会生成丑陋的双斜杠资源链接,以防@Path 中出现前导斜杠

      【讨论】:

        猜你喜欢
        • 2013-05-29
        • 1970-01-01
        • 2018-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多