当前位置: 首页 > news >正文

RESTful 基础知识

文章目录

    • 1.API 应用程序接口
    • 2.应用接口
    • 3.Web技术的发展阶段
    • 4.前后端分离
    • 5.RESTful风格
    • 6.RESTful设计
      • 6.1 网络上的所有事物都被抽象为资源
      • 6.2 资源状态转换
      • 6.3 使用统一接口
      • 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代表发送端发送的实体数据的类型

相关文章:

  • 微信小程序——后台交互
  • 在Web中搜索(Searching the Web, ACM/ICPC Beijing 2004, UVa1597)rust解法
  • 【Zero to One系列】微服务Hystrix的熔断器集成
  • Pytorch - 数据增广
  • esp32-S3 + visual studio code 开发环境搭建
  • 垃圾收费站
  • SpringDoc上传附件或文件 - Swagger3
  • 景联文科技提供4D-BEV标注工具:提升自动驾驶感知能力的精准数据支持
  • 如何在linux服务器上安装Anaconda与pytorch,以及pytorch卸载
  • 深入理解 Document Load 和 Document Ready 的区别
  • 深度学习:激活函数曲线总结
  • 关于多个elementui的cascader级联组件页面滚动渲染样式导致卡顿问题
  • 【机器学习可解释性】2.特征重要性排列
  • Node.js中的单线程服务器
  • nodejs+vue购物网站设计系统-计算机毕业设计
  • SolidWorks2020安装教程(超详细图文教程)
  • Python数据挖掘:入门、进阶与实用案例分析——基于非侵入式负荷检测与分解的电力数据挖掘
  • 【ARM 嵌入式 C 入门及渐进 10 -- 冒泡排序 选择排序 插入排序 快速排序 归并排序 堆排序 比较介绍】
  • 【设计模式】第5节:创建型模式之“简单工厂、工厂方法和抽象工厂模式”
  • vue重修之Vuex【下部】
  • 西湖大学独家回应本科招生走出浙江:经过三年试点,条件成熟
  • 体坛联播|安切洛蒂预计执教巴西国家队,利拉德确诊跟腱撕裂
  • 中国纪检监察报刊文:要让劳动最光荣成为社会的崇高风尚
  • 六朝文物草连空——丹阳句容南朝石刻考察纪
  • 2025年“畅游江淮 合肥等侬”文旅推介会在沪成功举办
  • 王庆成:儒家、墨家和洪秀全的“上帝”