接口架构风格—RESTful

理解什么是“接口(API)的架构风格”

  • 什么是API(应用程序接口)?
    • 两个单独的应用程序他们之间是无法直接进行信息交换的,必须借助于一个“桥梁”,这个桥梁就可以理解为应用程序接口。
    • 一个程序可以通过调用你暴露给我的API,就能访问你的系统中的信息或者功能,我不需要去访问你的源码,也不需要知道你的内部工作的细节的。
  • 接口架构风格
    • 为了快速,大规模建立不同应用程序之间的“桥梁”,API的使用协议或规范来定义了哪些通过网络传输的消息的语义和信息。
    • 这些规范以及协议就构成了一个个不同的接口架构风格。

认识REST

  • REST(REpresentation State Transfer)中文名称为:表现层状态转移,他是在2000年提出的一个接口架构风格。
  • 用一句话就可以概括出来REST是一种什么设计风格——使用URI表示资源(名词),使用http动作来操作资源(动词)。就是给你一个名词和一个动词,你就知道我想要干什么了,非常的简洁且优雅~
  • 如果还不是很理解的话就看下面这个具体的例子
    • 如果要对一个data进行CRUD操作的话
      • 一般的API风格可能长这样
        • /api/create_data
        • /api/read_data
        • /api/update_data
        • /api/delete_data
      • RESTful API是长这样的
        • GET /api/data
        • POST /api/data
        • PUT /api/data
        • DELETE /api/data
      • 由此我们可以看出,一般风格的API对于一个资源就会产生四个URL,如果资源多了的话,简直就是URL数量爆炸……而RESTful API对于一个资源只会产生出一个URL,对于这个资源的操作类型由http动作来指定,说他非常简洁且优雅不为过吧^_^
  • 以上就是对于RESTful接口设计风格一个简单的理解
  • 优点:
    • 轻量,直接基于http,不需要再有任何别的协议
    • 面向资源,一目了然
    • 数据描述简单,一般以xml,json做数据交换
    • ……

在SpringBoot中实现RESTful风格

  • SpringBoot开发RESTful主要是几个注解来实现的
  • @PathVariable:从URL中获取数据
  • @GetMapping:支持的get请求,等同于@RequestMapping(method=RequestMethod.GET)
  • @PostMapping:支持的post请求,等同于@RequestMapping(method=RequestMethod.POST)
  • @PutMapping:支持的put请求,等同于@RequestMapping(method=RequestMethod.PUT)
  • @DeleteMapping:支持的delete请求,等同于@RequestMapping(method=RequestMethod.DELETE)
  • @RestController:复合注解,是@Controller和@ResponseBody组合

在类的上面使用,表示当前的类的所有方法都加入了@ResponseBody注解

  • 特别介绍一下@PathVariable的使用
    • 他是用在控制器方法的形参前面,来获取URL中的数据
    • 举例说明,要获取某一个id的学生的信息,那么设计出来的RESTful API为GET /student/{id},对应的实现如下图:

猜你喜欢

转载自blog.csdn.net/qq_45933810/article/details/121564810