美文网首页
十次方项目第一天(RESTful-统一异常处理-跨域处理)

十次方项目第一天(RESTful-统一异常处理-跨域处理)

作者: 执笔梦一场 | 来源:发表于2018-12-02 17:13 被阅读30次

    GET

    • 安全且幂等
    • 获取表示
    • 变更时获取表示(缓存)
    • 200(OK) - 表示已在响应中发出
    • 204(无内容) - 资源有空表示
    • 301(Moved Permanently) - 资源的URI已被更新
    • 303(See Other) - 其他(如,负载均衡)
    • 304(not modified)- 资源未更改(缓存)
    • 400 (bad request)- 指代坏请求(如,参数错误)
    • 404 (not found)- 资源不存在
    • 406 (not acceptable)- 服务端不支持所需表示
    • 500 (internal server error)- 通用错误响应
    • 503 (Service Unavailable)- 服务端当前无法处理请求

    POST

    • 不安全且不幂等
    • 使用服务端管理的(自动产生)的实例号创建资源
    • 创建子资源
    • 部分更新资源
    • 如果没有被修改,则不过更新资源(乐观锁)
    • 200(OK)- 如果现有资源已被更改
    • 201(created)- 如果新资源被创建
    • 202(accepted)- 已接受处理请求但尚未完成(异步处理)
    • 301(Moved Permanently)- 资源的URI被更新
    • 303(See Other)- 其他(如,负载均衡)
    • 400(bad request)- 指代坏请求
    • 404 (not found)- 资源不存在
    • 406 (not acceptable)- 服务端不支持所需表示
    • 409 (conflict)- 通用冲突
    • 412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突)
    • 415 (unsupported media type)- 接受到的表示不受支持
    • 500 (internal server error)- 通用错误响应
    • 503 (Service Unavailable)- 服务当前无法处理请求

    PUT

    • 不安全但幂等
    • 用客户端管理的实例号创建一个资源
    • 通过替换的方式更新资源
    • 如果未被修改,则更新资源(乐观锁)
    • 200 (OK)- 如果已存在资源被更改
    • 201 (created)- 如果新资源被创建
    • 301(Moved Permanently)- 资源的URI已更改
    • 303 (See Other)- 其他(如,负载均衡)
    • 400 (bad request)- 指代坏请求
    • 404 (not found)- 资源不存在
    • 406 (not acceptable)- 服务端不支持所需表示
    • 409 (conflict)- 通用冲突
    • 412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突)
    • 415 (unsupported media type)- 接受到的表示不受支持
    • 500 (internal server error)- 通用错误响应
    • 503 (Service Unavailable)- 服务当前无法处理请求

    DELETE

    • 不安全但幂等
    • 删除资源
    • 200 (OK)- 资源已被删除
    • 301 (Moved Permanently)- 资源的URI已更改
    • 303 (See Other)- 其他,如负载均衡
    • 400 (bad request)- 指代坏请求
    • 404 (not found)- 资源不存在
    • 409 (conflict)- 通用冲突
    • 500 (internal server error)- 通用错误响应
    • 503 (Service Unavailable)- 服务端当前无法处理请求

    公共异常处理

     为了使我们的代码更容易维护,我们创建一个类集中处理异常
    在com.tensquare.user.controller包下创建公共异常处理类BaseExceptionHandler
     前后端分离,一旦出现错误返回给前端的是这样的,所以 必须编写统一异常处理进行拦截,然后返回前端需要的json格式


    17041564.png
    /**
     * 统一异常处理类
     */
    @ControllerAdvice
    public class BaseExceptionHandler {
       
        @ExceptionHandler(value = Exception.class)//表示只处理这种异常,还可添加runtimeexception等
        @ResponseBody
        public Result error( Exception e) {
            e.printStackTrace();       
            return new Result(false, StatusCode.ERROR, e.getMessage());
        }
    }
    

    跨域处理

     跨域是什么?浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域 。我们是采用前后端分离开发的,也是前后端分离部署的,必然会存在跨域问题。 怎么解决跨域?很简单,只需要在controller类上添加注解@CrossOrigin 即可!这个注解其实是CORS的实现。
     ​ CORS(Cross-Origin Resource Sharing, 跨源资源共享)是W3C出的一个标准,其思想是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功,还是应该失败。因此,要想实现CORS进行跨域,需要服务器进行一些设置,同时前端也需要做一些配置和分析。本文简单的对服务端的配置和前端的一些设置进行分析。
    站在巨人的肩膀上

    相关文章

      网友评论

          本文标题:十次方项目第一天(RESTful-统一异常处理-跨域处理)

          本文链接:https://www.haomeiwen.com/subject/sanjcqtx.html