RESTful Web 服务
2018-08-15 15:43 shadowsky88 阅读(366) 评论(0) 编辑 收藏 举报
常用 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 操作会导致不同的结果。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架