46.4. 使用资源方法
概述
资源方法使用 JAX-RS 注释标注。它们具有一个 HTTP 方法注释,指定方法进程的请求类型。JAX-RS 在资源方法上放置了多个限制。
常规限制
所有资源方法都必须满足以下条件:
- 它必须是公共的。
- 它必须使用 “指定 HTTP 动词”一节 中描述的 HTTP 方法注解之一进行解码。
- 它不能有一个以上的实体参数,如 “参数”一节 所述。
参数
实体参数- 不注解参数。它们的值从请求实体正文映射。实体参数可以是应用程序拥有实体供应商的任何类型的类型。通常,它们是 JAXB 对象。
重要资源方法 只能有一个 实体参数。
有关实体供应商的更多信息,请参阅 第 51 章 实体支持。
注解的参数-Annotated 参数使用 JAX-RS 注释中的一个,用于指定参数的值如何从请求映射。通常,参数的值从请求 URI 的部分映射。
有关使用 JAX-RS 注释将请求数据映射到方法参数的更多信息,请参阅 第 47 章 将信息传递到资源类和方法。
例 46.4 “带有有效参数列表的资源方法” 显示具有有效参数列表的资源方法。
例 46.4. 带有有效参数列表的资源方法
@POST @Path("disaster/monster/giant/{id}") public void addDaikaiju(Kaiju kaiju, @PathParam("id") String id) { ... }
例 46.5 “带有无效参数列表的资源方法” 显示具有无效参数列表的资源方法。它有两个没有注解的参数。
例 46.5. 带有无效参数列表的资源方法
@POST @Path("disaster/monster/giant/") public void addDaikaiju(Kaiju kaiju, String id) { ... }
返回值
资源方法可以返回以下之一:
-
void
任何应用程序具有实体供应商的 Java 类
有关实体供应商的更多信息,请参阅 第 51 章 实体支持。
响应
对象有关
Response
对象的详情请参考 第 48.3 节 “微调应用程序响应”。一个
GenericEntity<T>
对象有关
GenericEntity<T>
; 对象的更多信息,请参阅 第 48.4 节 “返回包含通用类型信息的实体”。
所有资源方法都会将 HTTP 状态代码返回到请求者。当方法的返回类型为 void
或返回的值为 null
时,资源方法会将 HTTP 状态代码设置为 204
。当资源方法返回 null
以外的任何值时,它会将 HTTP 状态代码设置为 200
。