RESTful 的介绍及使用

作者: 右耳菌 | 来源:发表于2022-04-26 23:33 被阅读0次

一、什么是URI

  • 统一资源标识符,服务器上每一种资源,比如文档、图像、视频片段、程序都由一个通用资源标识符(Uniform Resource ldentifier,简称"URI")进行定位。
  • URI、URL、URN三者的关系是什么?


    image.png

二、REST产生的背景

近年来移动互联网的发展,前端设备层出不穷(手机、平板、桌面电脑、其他专用设备...…),因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信,于是REST诞生了,它可以通过一套统一的接口为Web,iOS和Android提供服务。

三、什么是REST

  • REST的概念
    REST (Representational State Transfer,表述性状态转移)一词是由Roy Thomas Fielding在他2000年博士论文中提出的,定义了他对互联网软件的架构原则,所以我们可以说REST是一种架构风格。
  • REST的原则
    • 网络上的所有事物都被抽象为资源
    • 每个资源都有一个唯一的资源标识符
    • 同一个资源具有多种表现形式(xml,json等)
    • 对资源的各种操作不会改变资源标识符
    • 所有的操作都是无状态的

四、什么是RESTful

  • 遵守了rest 原则的web服务,rest式的web服务是一种ROA(The Resource-OrientedArchitecture:面向资源的架构),RESTful架构一个核心概念是"资源"(Resource)

  • 互联网中,客户端和服务端之间的互动传递的就只是资源的表述,我们上网的过程,就是调用资源的URI,获取它不同表现形式的过程。这种互动只能使用无状态协议HTTP,也就是说,服务端必须保存所有的状态,客户端可以使用HTTP的几个基本操作,包括GET(获取)、POST(创建)、PUT(更新)与DELETE(删除),使得服务端上的资源发生"状态转化"(StateTransfer),也就是所谓的“表述性状态转移”。

  • 举例


    举例1
    举例2

五、RESTful的运用

  • Spring Boot全面支持开发RESTful程序,通过不同的注解来支持前端的请求:
    • @GetMapping,处理Get请求
    • @PostMapping,处理Post请求
    • @PutMapping,用于更新资源
    • @DeleteMapping,处理删除请求
    • @PatchMapping,用于更新部分资源
  • Controller中的映射注解
    • @PathVariable,用于接收url路径上的参数
    • @ModelAttribute,用于直接接受url?后面的参数如url?id=123&name=456,然后直接转为Pojo

六、SpringBoot下进行RESTful的开发流程

RESTful开发流程

一个例子:Spring Boot JPA RESTful后端项目的过程可以查看我写的另一篇文章
Spring Boot JPA 项目的创建并且根据数据库表生成类文件


七、Spring Data REST的介绍

  • Spring Data REST

    • Spring Data REST 作为Spring Data项目的子集,开发者只需使用注解@RepositoryRestResource标记,就可以把整个Repository转换为HAL风格的REST 资源,目前已支持Spring Data JPA、Spring Data MongoDB、Spring DataNeo4j等等。
    • @RepositoryRestResource标记,就可以把整个Repository转换为HAL风格的REST 资源,目前已支持Spring Data JPA、Spring Data MongoDB、Spring DataNeo4j等等。
    • HAL (Hypertxt Application Language)是一个被广泛采用的超文本表达的规范。官方文档: https://www.springcloud.cc/spring-data-rest-zhcn.html
  • HAL规范示例
    目前github提供的api就是这种风格。在返回结果中添加额外的信息(链接)之后,服务器端提供的表达可以帮助客户端更好的发现服务器端所支持的动作。

  • Spring Data REST的开发流程


    Spring-Data-REST的开发流程

一个例子:Spring Boot JPA RESTful后端项目的过程可以查看我写的另一篇文章
Spring Data Rest 项目的开发流程

相关文章

  • RESTful 的介绍及使用

    一、什么是URI 统一资源标识符,服务器上每一种资源,比如文档、图像、视频片段、程序都由一个通用资源标识符(Uni...

  • Spring+SpringMVC+MyBatis整合进阶篇(四)

    前言 前文《RESTful API实战笔记(接口设计及Java后端实现)》中介绍了RESTful中后端开发的实现,...

  • RESTful介绍及示例

    RESTful的中文含义是“ 表现层状态传递”,完整表述是:Resource Representational S...

  • PHP - Hush Framework 学习记录

    PHP 目录 1、PHP 语言的介绍(面向对象,session,MVC 模式) 2、RESTful API 介绍及...

  • Laravel-RestfulAPI 资源控制器

    laravel里有基本控制器和控制器路由。不过我们这里介绍另一种风格--RESTFul。具体的RESTFul风格及...

  • Flask-Restful插件

    介绍: Flask-Restful是一个专门用来写restful api的一个插件。使用他可以快速的集成restf...

  • Developing a RESTful API with Go

    Developing a RESTful API with Go and Gin 本教程介绍了使用 Go 和Gin...

  • Elasticsearch数据增删改

    说明: 本文介绍 ElasticSearch 增加、删除、修改的使用示例。通过Restful 接口和 Post...

  • RPC简介及框架选择

    简单介绍RPC协议及常见框架,对比传统restful api和RPC方式的优缺点。常见RPC框架,gRPC及序列化...

  • RPC简介及框架选择

    简单介绍RPC协议及常见框架,对比传统restful api和RPC方式的优缺点。常见RPC框架,gRPC及序列化...

网友评论

    本文标题:RESTful 的介绍及使用

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