常用 HTTP 动词的例子。
编号 | HTTP 方法,URI 和操作 |
---|---|
1 | GET http://localhost:8080/UserManagement/rest/UserService/users 获取用户列表 (只读) |
2 | GET http://localhost:8080/UserManagement/rest/UserService/users/1 获取 ID 为 1 的用户 (只读) |
3 | PUT http://localhost:8080/UserManagement/rest/UserService/users/2 插入 ID 为 2 的用户 (幂等) |
4 | POST http://localhost:8080/UserManagement/rest/UserService/users/2 更新 ID 为 2 的用户 (N/A) |
5 | DELETE http://localhost:8080/UserManagement/rest/UserService/users/1 删除 ID 为 1 的用户 (幂等) |
6 | OPTIONS http://localhost:8080/UserManagement/rest/UserService/users 列出 Web 服务所支持的操作 (只读) |
7 | HEAD http://localhost:8080/UserManagement/rest/UserService/users 只返回 HTTP 头,不返回 HTTP 体 (只读) |
JAX-RS 表示用于 RESTful Web 服务的 Java API。JAX-RS 是一种基于 Java 的编程语言 API 以及为创建 RESTful Web 服务提供支持的规范。2.0 版本发布于 2013 年 5 月 24 日。从 Java SE 5 开始大量使用 JAX-RS 注释以简化基于 Java 的 Web 服务的创建和部署。它还为创建 RESTful Web 服务客户端提供支持。
规范
以下是影射某个资源为 Web 服务资源的常用注释:
编号 | 注释 & 描述 |
---|---|
1 | @Path 资源类或方法的相对路径。 |
2 | @GET HTTP Get 请求,用来提取资源。 |
3 | @PUT HTTP PUT 请求,用来创建资源。 |
4 | @POST HTTP POST 请求,用来创建或更新资源。 |
5 | @DELETE HTTP DELETE 请求,用来删除资源。 |
6 | @HEAD HTTP HEAD 请求,用来获取方法可用的状态。 |
7 | @Produces 由 Web 服务生成的 HTTP 响应,比如 APPLICATION/XML,TEXT/HTML,APPLICATION/JSON 等。 |
8 | @Consumes HTTP 请求类型,比如 application/x-www-form-urlencoded 在 POST 请求期间在 HTTP 体中接受表单数据。 |
9 | @PathParam 绑定传递给方法的参数为路径中的某个值。 |
10 | @QueryParam 绑定传递给方法参数为路径中的某个查询参数。 |
11 | @MatrixParam 绑定传递给方法参数为路径中的某个 HTTP 矩阵参数。 |
12 | @HeaderParam 绑定传递给方法的参数为 HTTP 头。 |
13 | @CookieParam 绑定传递给方法的参数为某个 Cookie。 |
14 | @FormParam 绑定传递给方法的参数为某个表单值。 |
15 | @DefaultValue 给传递给方法的参数分配一个默认值。 |
16 | @Context 资源上下文,比如将 HTTP 请求作为上下文。 |
这里是要考虑的要点:
- GET 操作是只读且安全的。
- PUT 和 DELETE 操作是幂等的意味着它们的结果总是相同的,无论这个操作被调用多少次。
- PUT 和 POST 操作几乎是相同的,区别在于 PUT 操作的结果是幂等的,而 POST 操作会导致不同的结果。