REST风格网站

REST风格网站,第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,这个类存在三个属性

  • status:HttpStatus类型,表示响应码 注:这个是枚举类。
  • headers:HTTP响应头,可以支持自定义消息。
  • body:响应体,HTTP请求响应正文。
 /**
     * 
     * @param name 角色姓名  因为这是测试 这个参数毫无意义
     * @return 角色
     */
    @GetMapping("/info/{name}")
    public ResponseEntity test(@PathVariable(value = "name" ,required = false) String name){
        //响应体
        User body=new User(name,"这是地址");
        //响应头
        HttpHeaders headers=new HttpHeaders();
        if(true){
            headers.add("success","成功");
            headers.add("message","信息成功");
        }else {
            headers.add("success","失败");
            headers.add("message","这个信息"+name+"失败");
        }
//        创建ResponseEntity
        return new ResponseEntity(body,headers, HttpStatus.OK);
    }

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/800871.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-07
下一篇 2022-05-07

发表评论

登录后才能评论

评论列表(0条)

保存