46.2. 基本 JAX-RS 注释
概述
RESTful Web 服务实现所需的最基本信息有:
- 服务资源的 URI
- 类的方法如何映射到 HTTP 动词
JAX-RS 定义一组提供此基本信息的注释。所有资源类必须至少有一个注解。
设置路径
@Path
注释指定资源的 URI。该注释由 javax.ws.rs.Path 接口定义,可用于分离资源类或资源方法。它接受字符串值作为其唯一参数。字符串值是一个 URI 模板,用于指定实施资源的位置。
URI 模板指定资源的相对位置。如 例 46.2 “URI 模板语法” 所示,模板可包含以下内容:
- 未处理的路径组件
{
}
周围的参数标识符注意参数标识符可以包含正则表达式,以更改默认路径处理。
例 46.2. URI 模板语法
@Path("resourceName/{param1}/../{paramN}")
例如,URI 模板 widgets/{color}/{number} 将映射到 widgets/blue/12。color
参数的值分配给 蓝色。number
参数的值被分配 12。
URI 模板如何映射到完整的 URI,这取决于 @Path
注释的下降。如果它放在根资源类上,URI 模板是树中所有资源的根 URI,它将直接附加到发布该服务的 URI。如果注解解封子资源,它将相对于根资源 URI。
指定 HTTP 动词
JAX-RS 使用五个注释来指定将用于方法的 HTTP 动词:
-
javax.ws.rs.DELETE 指定方法映射到
DELETE
。 -
javax.ws.rs.GET 指定方法映射到
GET
。 -
javax.ws.rs.POST 指定方法映射到
POST
。 -
javax.ws.rs.PUT 指定方法映射到
PUT
。 -
javax.ws.rs.HEAD 指定方法映射到
HEAD
。
将方法映射到 HTTP 动词时,您必须确保映射有意义。例如,如果您映射要提交购买顺序的方法,您可以将它映射到 PUT
或 POST
。将其映射到 GET
或 DELETE
会导致行为无法预计。