zoukankan      html  css  js  c++  java
  • RESTful Web 服务

    常用 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 操作会导致不同的结果。
  • 相关阅读:
    json-lib 中关于null与"null"
    Android SDK及Build版本配置说明
    WebStorm下Webpack的Source map问题
    简述Javascript的原型链
    Hbuilder中添加Babel自动编译
    理解Java的lamda表达式实现
    CountDownLatch多个主线程等待示例
    关于CyclicBarrier的执行顺序
    【转载】让Go2Shell支持ITerm2 和x-term
    【原创】mac下为eclipse安装反编译插件
  • 原文地址:https://www.cnblogs.com/spilzer/p/9481831.html
Copyright © 2011-2022 走看看