使用“/”的Restful Path用法

时间:2014-09-24 11:17:02

标签: java rest path uri

@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() {
        //....
    }

}

2 个答案:

答案 0 :(得分:8)

我从未见过任何差异。 @Pathhttp://docs.oracle.com/javaee/7/api/javax/ws/rs/Path.html)的文档说:

  

路径是相对的。对于带注释的类,基URI是应用程序路径,请参阅ApplicationPath。对于带注释的方法,基URI是包含类的有效URI。为了对基URI进行绝对化路径,一个领先的' /'在路径中被忽略,基本URI被视为在' /'中结束。

所以应该没有任何区别。

答案 1 :(得分:2)

根据this教程:

  

@Path值不需要带有前导或斜杠(/)。   无论是否,JAX-RS运行时都会分析URI路径模板   他们有领先或尾随空间。

所以似乎没有区别。

P.S。我曾经看到一个与JAX-RS运行时本身没有直接关系的微小差异。一个错误的文档生成框架在@Path

中引入斜杠的情况下生成丑陋的双击资源链接