• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

REST风格网站

武飞扬头像
qq_45910900
帮助1

了解REST风格

  • 被翻译成为“表现层状态转换” 有两个名词:表现层和状态,什么东西需要他们两个呢?那就是资源。于是就有三个名词:表现层,状态,资源
    • 资源:可以是一个角色,用户和商品,是具体存在的某个事物
    • 表现层:是表现资源的具体方式,可以用jsp,json,或者excel等展现出来
    • 状态:一个资源并不是一成不变的,它的状态包括创建 修改 删除和访问等 

REST风格的约定

  • 每个URI代表一个独立的资源,因为URI是名词,所以在URI中不能出现动词。
  • 客户端和服务器端相互传递资源,而服务器端会以某种形式展示,如:html,json等
  • 客户端可以通过http的动作来修改资源的状态。

每个访问资源的URI都可以说是REST风格的一个端点,它代表操作某个资源。在http存在且常见的主要有7种:GET POST PUT PATCH DELETE HEAD OPTIONS,而实际的开发的动作主要有4种:GET POST PUT DELETE。

  • GET:从服务器获取资源
  • POST:提交资源信息,服务器创建对应的资源
  • PUT:提交属性让服务器端对现有的资源进行修改。注:使用该请求时建议提交该资源的全部属性 

注解@ResponseBody的使用 

主要用于标注控制器的映射方法,意思为将方法返回的结果,转变为JSON数据集展示给请求者

REST相应设计

1xx 相关信息

2xx 操作成功

3xx 重定向

4xx 客户端错误

5xx 服务器错误

使用 HTTP 的状态码

客户端的每一次请求,服务器都必须给出回应。回应包括 HTTP 状态码和数据两部分。

五大类状态码,总共100多种,覆盖了绝大部分可能遇到的情况。每一种状态码都有约定的解释,客户端只需查看状态码,就可以判断出发生了什么情况。API 不需要1xx状态码。

我们可以使用注解@ResponseStatus注解来返回相应状态码,当然我们就光使用状态码远远不够,还需要些其他的提示信息,来告诉请求者出现错误的原因是什么。Spring_MVC提供了ResponseEntity<T>,这个类存在三个属性

  • status:HttpStatus类型,表示响应码 注:这个是枚举类。
  • headers:HTTP响应头,可以支持自定义消息。
  • body:响应体,HTTP请求响应正文。
  1.  
    /**
  2.  
    *
  3.  
    * @param name 角色姓名 因为这是测试 这个参数毫无意义
  4.  
    * @return 角色
  5.  
    */
  6.  
    @GetMapping("/info/{name}")
  7.  
    public ResponseEntity<User> test(@PathVariable(value = "name" ,required = false) String name){
  8.  
    //响应体
  9.  
    User body=new User(name,"这是地址");
  10.  
    //响应头
  11.  
    HttpHeaders headers=new HttpHeaders();
  12.  
    if(true){
  13.  
    headers.add("success","成功");
  14.  
    headers.add("message","信息成功");
  15.  
    }else {
  16.  
    headers.add("success","失败");
  17.  
    headers.add("message","这个信息" name "失败");
  18.  
    }
  19.  
    // 创建ResponseEntity
  20.  
    return new ResponseEntity<User>(body,headers, HttpStatus.OK);
  21.  
    }
学新通

 这里有个小问题:header的信息显示不了中文。有大神看到的话帮忙回复我一下。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgeiehf
系列文章
更多 icon
同类精品
更多 icon
继续加载