zoukankan      html  css  js  c++  java
  • 【快学springboot】2.Restful简介,SpringBoot构建Restful接口

    Restful简介

    Restful一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    随着Restful风格的流行,现在更多的人叫HTTP接口为Restful接口。所以还是很有必要了解下Restful的一些基础约定的。

    Rest架构的主要原则

    网络上的所有事物都被抽象为资源,使用http方法表示具体操作,如下:

    【快学springboot】2.Restful简介,SpringBoot构建Restful接口

    幂等的意思是说,多次相同的请求,数据是保持一致的。

    restful实例参考

    • 非Restful之前的url风格

    http://127.0.0.1/user/query/1 GET 根据用户id查询用户数据

    http://127.0.0.1/user/save POST 新增用户

    http://127.0.0.1/user/update POST 修改用户信息

    http://127.0.0.1/user/delete GET/POST 删除用户信息

    • RESTful风格的url

    http://127.0.0.1/user/1 GET 根据用户id查询用户数据

    http://127.0.0.1/user POST 新增用户

    http://127.0.0.1/user PUT 修改用户信息

    http://127.0.0.1/user DELETE 删除用户信息

    SpringBoot构建Restful接口

    基于上一节的项目。这里先不考虑参数接受问题,将会在下一讲详细讲解

    1. 新建一个UserController

    并且在类上使用@RestController注解。

    @RestController
    @RequestMapping(value = "/api/v1/users")
    public class UserController {
     
    
    }
    

    这就快速创建出了一个Controller,与SpringMVC不同的@Controller不同的是,这里使用了RestController注解,其效果等于Controller注解+ResponseBody注解的效果,即返回json格式的数据。

    RequestMapping注解表示这个类的前置url。

    • PostMapping对应增
    @PostMapping
    public Object addUser() {
     // 新增一个用户
     return "OK";
    }
    

    这里PostMapping不写url,表示这个接口地址为这个Controller的前置地址

    • GetMapping对应查
    @GetMapping(value = "/{userId}")
    public Object getUser(@PathVariable(value = "userId") Integer userId) {
     // 根据ID查找一个用户
     return "User";
    }
    
    • DeleteMapping对应删除
    @DeleteMapping(value = "/{userId}")
    public Object deleteUser(@PathVariable(value = "userId") Integer userId) {
     // 根据id删除一个用户
     return "OK";
    }
    
    • PutMapping对应更新
    @PutMapping
    public Object updateUser() {
     // 跟新
     return "OK";
    }
    

    这里提一下PatchMapping,Patch请求方法也是更新操作,如果要细致的与PutMapping区分,则是PatchMapping对应部分更新,PutMapping对应整体覆盖的更新。

  • 相关阅读:
    Memcached
    Keepalived
    Nginx配置根据客户端设备转发
    ASP.NET跨平台实践:无需安装Mono的Jexus“独立版”
    Linux系统下如何查看CPU个数
    Ubuntu 安装mysql和简单操作
    python类库26[web2py之基本概念]
    Ubuntu Server 12.04 静态IP简洁配置
    全面解读python web 程序的9种部署方式
    Python3实现连接SQLite数据库的方法
  • 原文地址:https://www.cnblogs.com/happy4java/p/11203615.html
Copyright © 2011-2022 走看看