RESTFUL风格的URL请求及参数接收

  RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。---百度百科

  以前使用最多的请求方式还是post,post一时爽一直post一直爽,直到我接触了restful风格API,嗯真香!我就简单展示一下我怎么使用的,太深刻的理论原理咱也不懂咱也不敢讲! 

  REST,即Representational State Transfer的缩写(表述性状态传递)。 表述性状态转移是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。需要注意的是,REST是设计风格而不是标准。REST通常基于使用HTTP,URI,和XML(标准通用标记语言下的一个子集)以及HTML(标准通用标记语言下的一个应用)这些现有的广泛流行的协议和标准。

  URI,统一资源标识符(Uniform Resource Identifier,URI)是一个用于标识某一互联网资源名称的字符串。 该种标识允许用户对任何(包括本地和互联网)的资源通过特定的协议进行交互操作。URI由包括确定语法和相关协议的方案所定义。

  URL,统一资源定位系统(uniform resource locator;URL)是因特网的万维网服务程序上用于指定信息位置的表示方法。


请求路径      请求方法      作用
/user/1 HTTP   GET       查询id为1的user
/user/1 HTTP   DELETE      删除id为1的user
/user/1 HTTP   PUT       编辑id为1的user
/user HTTP      POST       新增user

新增和修改一般是使用@RequestBody获取整个body

    @PostMapping(value = "/user")
    public Message insert(@RequestBody User user) {
        try {
            userService.insert(user);
            return Message.ok();
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            return Message.fail();
        }
    }
    
    @PutMapping(value = "/user")
    public Message update(@RequestBody User user) {
        try {
            userService.update(user);
            return Message.ok();
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            return Message.fail();
        }
    }

当需要从请求路径中获取参数的时候就只能使用@PathVariable注解,删除的时候一般只需要传id,通过url带参就可以了

 @DeleteMapping(value = "/user/{id}")
    public Message logicalDeletionById(@PathVariable(name = "id") String id) {
        try {
            userService.logicalDeletionById(id);
            return Message.ok();
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            return Message.fail();
        }
    }

如果需要多条件查询就用对象传查询条件,下次讲SpringBoot+Jpa多条件查询+分页+排序

    @GetMapping(value = "/user")
    public Message findAll() {
        try {
            return new MessageBox<>(userService.findAll());
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            return Message.fail();
        }
    }

 如果有什么疑问欢迎留言,当然我也不一定懂!一起学习一起进步,群876083754

posted @ 2020-08-01 19:35  土豆GPT  阅读(13220)  评论(0编辑  收藏  举报