RESTful API接口规范及使用


REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。

  • 非Rest设计,以往我们都会这么写:以不同的URL进行不通的操作
@RestController
@RequestMapping("/user")
@Api(tags = "用户管理模块")
public class UserController{@Resourceprivate UserService userService;/** 添加用户 */@RequestMapping("/addUser")public String addUser(User user){return userService.addUser(user);}/** 删除用户 */@RequestMapping("/deleteUser")public String deleteUser(String userId){return userService.deleteUser(user);}/** 修改用户 */@RequestMapping("/updateUser")public String updateUser(User user){return userService.updateUser(userId);}/** 查询用户 */@RequestMapping("/queryUser")public User queryUser(String userId){return userService.queryUser(userId);}
}

http://localhost:8080/user/addUser(添加用户)

http://localhost:8080/user/deleteUser (删除用户)

http://localhost:8080/user/updateUser (更新用户)

http://localhost:8080/user/queryUser (查询用户)

  • Rest架构:

    • 在我们定义一个接口的URL时,可以通过以下两种方式实现
    • 第一种方式:指定请求方式
      • @RequestMapping(value ="/user", method = RequestMethod.GET) 查询
      • @RequestMapping(value ="/user", method = RequestMethod.POST)添加或修改
      • @RequestMapping(value ="/user", method = RequestMethod.PUT) 修改
      • @RequestMapping(value ="/user", method = RequestMethod.DELETE) 删除
    • 第二种方式:使用特定的请求方式注解
      • @PostMapping("/user") 添加或修改
      • @DeleteMapping("/user/{userId}") 删除
      • @PutMapping("/user") 修改
      • @GetMapping("/user/{userId}")查询
@RestController
@RequestMapping("/admin")
@Api(tags = "用户管理模块")
public class UserController{@Resourceprivate UserService userService;/**添加用户*/@PostMapping("/user")@RequestMapping(value = "/user", method = RequestMethod.POST)public String addUser(User user){return userService.addUser(user);}/**删除用户*/@DeleteMapping("/user/{userId}")@RequestMapping(value ="/user", method = RequestMethod.DELETE)public String deleteUser(@PathVariable("/userId")String userId){return userService.deleteUser(userId);}/**修改用户*/@PutMapping("/user")@RequestMapping(value ="/user", method = RequestMethod.PUT)// @PostMapping("/user")  // 也可以用 PostMapping// @RequestMapping(value = "/user", method = RequestMethod.POST)public String updateUser(User user){return userService.updateUser(user);}/**查询用户*/@GetMapping("/user/{userId}")@RequestMapping(value ="/user", method = RequestMethod.GET)public User queryUser(@PathVariable("/userId")String userId){return userService.queryUser(userId);}
}

http://locahost:8080/admin/user/1 (查询用户ID为1的数据信息)

http://localhost:8080/admin/user/1 (删除用户ID为1的数据信息)

  • RESTfui API接口响应的资源(返回给前端的数据格式)的表现形式为JSONXML

    • 方式一:在控制类(controller类)上添加@ResponseBody 注解
    • 方式二:在每个接口的方法上添加@ResponseBody 注解
    • 方式三:直接在控制类(controller类)使用@RestController注解
  • 前端通过无状态的http协议与后端进行接口交互

    • 无状态:每一次请求都是独立的,每一次请求都不会有请求记录
  • 状态码
200:服务器成功返回用户请求的数据,该操作是幂等的。
201:用户新建或修改数据成功。
202:表示一个请求已经进入后台排队(异步任务)
204:用户删除数据成功。
301:永久重定向
302:暂时重定向
400:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
401:表示用户没有权限(令牌、用户名、密码错误)。
403:表示用户得到授权(与401错误相对),但是访问是被禁止的。
404:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
406:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
410:用户请求的资源被永久删除,且不会再得到的。
422:当创建一个对象时,发生一个验证错误。
500:服务器发生错误,用户将无法判断发出的请求是否成功。

RESTful API接口规范及使用相关推荐

  1. RESTful API接口规范

    RESTful规范 Restful API是目前比较成熟的一套互联网应用程序的API设计理念,Rest是一组架构约束条件和原则,如何Rest约束条件和原则的架构,我们就称为Restful架构,Rest ...

  2. restful api接口规范_如何理解RESTful API设计规范?

    作者:涂根华 https://www.cnblogs.com/tugenhua0707/p/12153857.html RESTful是目前最流行的API设计规范,它是用于Web数据接口的设计.从字面 ...

  3. restful api接口规范_Restful API设计规范

    RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义.RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源 ...

  4. Restful API思路

    1.通过服务器重写规则,将所有请求走一个入口方法,例如index.php的run()方法. 2.通过$_SERVER,找到请求方法,请求路径,请求参数,进行初始化参数 3.根据请求路径,走不同mode ...

  5. Restful API 的接口规范

    发展背景及简介 网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备-).因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信.这导致 ...

  6. put url带参数_避免自己写的 url 被diss!建议看看这篇RESTful API简明教程!

    RESTful API 是每个程序员都应该了解并掌握的基本知识,我们在开发过程中设计 API 的时候也应该至少要满足 RESTful API 的最基本的要求(比如接口中尽量使用名词,使用 POST 请 ...

  7. php restful规范,RESTFul API规范 详细指南

    RESTFul规范 RESTFul是一种HTTP API接口规范,只要满足的RESTFul规范,即可称为RESTFul API. 既然是接口,我们先来了解一下,他和传统的API接口有何不同吧. 本文以 ...

  8. 使用CodeIgniter框架搭建RESTful API服务

    RESTful不仅仅是一套协议标准更是一种设计思路. 在2011年8月的时候,我写了一篇博客<使用CodeIgniter框架搭建RESTful API服务>,介绍了RESTful的设计概念 ...

  9. RESTful API接口设计规范

    目录 一.RESTful的诞生背景 二.什么是RESTful? 三.Restful API接口设计规范 3.1.协议 3.2.路径规则|域名 3.3.版本控制 3.4.请求类型 3.5.传入参数 3. ...

最新文章

  1. 忘了python关键语句?这份备忘录拯救你的记忆
  2. java 自然语言处理_Java自然语言处理
  3. 如何为linux释放内存和缓存
  4. mybatis学习笔记
  5. 装车机器人_智造春天脚步近 青岛这家机器人公司着手打造模块化、标准化技术平台...
  6. java学习(16):巩固练习
  7. java 带宽控制_如何使用Java netty正确限制带宽使用?
  8. mysql如何进行分组操作的_mysql group by 对多个字段进行分组操作
  9. 国土空间适宜性评价与承载力评价之间的逻辑关系是什么?
  10. C++ MFC WebBrowser 探索(二)
  11. C#多线程学习(五) 多线程的自动管理(定时器)
  12. dump的文件 查看pg_【PG备份恢复】pg_dump命令测试
  13. 京东基础架构部招聘GO/JAVA架构师两名(T7+)
  14. 多媒体计算机未来发展的方向,计算机多媒体技术发展趋势
  15. linux授读写权限,Linux系统中,设定资料读写权限
  16. PISCES P4-vSwitch 安装以及一次失败的测试
  17. 建造智能食用菌大棚,用菌菇养殖管理系统管理温室
  18. 一对一直播源码是什么?一对一直播平台如何成功搭建?
  19. 新手爬取51job,智联,boss网站职位信息总结和代码(小杜总结)
  20. Zigbee入门指导(二)

热门文章

  1. android 开启gps 简书,1分钟教你如何打开人生的GPS导航系统
  2. 关于近九个月我未更新博客这件事
  3. 使用jQuery改变元素的CSS样式
  4. Python在线聊天软件(Tkinter)
  5. 使用oath作totp一次性口令openssh认证
  6. 大事很妙,跨境电商用Reddit做营销做测评真的很有用
  7. matlab 堆栈使用,matlab – 图像标准化,图像范围和图像缩放不同的图像堆栈
  8. [Armory]实现相机的漫游功能
  9. jQuery获取标签的方法
  10. Windows解决电脑卡顿方法之清理缓存