RESTful 基础知识

文章目录

    • [1.API 应用程序接口](#1.API 应用程序接口)
    • 2.应用接口
    • 3.Web技术的发展阶段
    • 4.前后端分离
    • 5.RESTful风格
    • 6.RESTful设计
      • [6.1 网络上的所有事物都被抽象为资源](#6.1 网络上的所有事物都被抽象为资源)
      • [6.2 资源状态转换](#6.2 资源状态转换)
      • [6.3 使用统一接口](#6.3 使用统一接口)
      • [6.4 同一个资源具有多种表现形式xml,json](#6.4 同一个资源具有多种表现形式xml,json)

1.API 应用程序接口

一些预定义的函数,或指软件系统不同组成部分衔接的约定。

提供应用程序与开发人员基于某软件或硬件访问一组例程的能力,无需访问源码,无需理解内 部工作机制的细节。

2.应用接口

把系统的功能作为服务暴露给外部的其他应用使用,需要把系统中的服务作为API接口暴露出去,一般分为公共接口和私用接口

3.Web技术的发展阶段

  • 静态内容阶段:研究机构使用,web由大量的静态HTML文档组成
  • CGI程序阶段:web服务器增加了一些编程API,提供动态变化内容
  • 脚本语言阶段:服务器端出现了ASP、PHP、JSP、ColdFusion等支持session的脚本语言技术
  • 浏览器端出现了JavaApplet、JavaScript等技术
  • 瘦客户端应用阶段:服务器端出现了独立于web服务器的应用服务器。同时出现了web MVC开 发模式。
  • RIA应用阶段:DHTML+Ajax,动态更新页面中的局部内容

4.前后端分离

不只是开发模式,也是web应用的一种架构模式

优点:

  • 1.前后端责任清晰,后端专注于数据上,前端专注于视觉上。
  • 2.无需等待对方的开发工作结束,提高开发效率。
  • 3.可应对复杂多变的前端需求。
  • 4.增强代码可维护性。

5.RESTful风格

RESTful API是一种基于HTTP协议设计的Web服务接口,它使用HTTP请求方法(如GET、POST、PUT、DELETE)来访问和操作资源。它通常使用JSON或XML格式的数据进行交互。RESTful API本身并不依赖于任何特定的传输协议,但由于HTTP协议具有广泛的应用和支持,因此RESTful API通常使用HTTP协议进行通信。RESTful API可以用于实现不同类型的应用程序之间的数据交互,例如Web应用程序、移动应用程序、IoT设备等。

6.RESTful设计

6.1 网络上的所有事物都被抽象为资源

每个资源都有一个唯一的资源定位符URI,每个URI代表一种资源resource,不能有动词,只能有名词

6.2 资源状态转换

互联网通信协议HTTP协议,是一个无状态协议

6.3 使用统一接口

REST要求,必须通过统一的接口来对资源执行各种操作

  • get:从服务器取出资源
  • post:在服务器新建一个资源
  • put:在服务器更新资源
  • patch:在服务器更新资源,客户端提供改变的属性
  • delete:从服务器删除资源
  • head:获取一个资源的元数据
  • options:获得客户端针对一个资源能够实施的操作

返回值

collection/resource

HTTP响应状态码

6.4 同一个资源具有多种表现形式xml,json

HTTP请求的头信息中用Accept和Content-Type字段指定,对"表现"的描述。

accept:application/json

content-type:application/json

Accept属于请求头,Content-Type属于实体头

Accept代表客户端希望接受的数据类型

Content-Type代表发送端发送的实体数据的类型

相关推荐
springXu几秒前
windows arm64上的VS CODE的GoLang环境的搭建
开发语言·后端·golang
怕浪猫14 分钟前
听说后端又死了?AI 时代前端后端都怎么样了
后端·面试
IT_陈寒21 分钟前
Redis突然吃掉所有内存,我的服务差点挂了
前端·人工智能·后端
鹏程十八少1 小时前
Android TransactionTooLargeException 的真相与修复:从 1.13MB Bundle 到 Binder 内核的完整剖析
前端·后端·面试
geovindu1 小时前
go: Monitor Pattern
开发语言·后端·设计模式·golang·监控模式
ZHOUPUYU1 小时前
PHP 开发实战:从零搭建一个高性能的 RESTful API 服务
运维·开发语言·后端·html·php
身如柳絮随风扬1 小时前
除了 JWT,你还用过哪些认证方案?Spring Security 中如何集成 JWT?
java·后端·spring
techdashen1 小时前
Rust 能帮你捕获什么,又不能捕获什么
开发语言·后端·rust
YOU OU1 小时前
Spring MVC 练习项目
java·后端·spring
Spider Cat 蜘蛛猫11 小时前
Springboot SSO系统设计文档
java·spring boot·后端