REST架构

REST架构

rest不是一种技术,也不是一种具体的规范,是一种软件架构风格。
rest是所有web应用应该遵守的架构设计指导原则,但是不用也可以实现应用功能。

架构约束:

1.客户端→服务器
2.无状态
3.缓存
4. 统一接口
5.分层系统
6. 按需代码

rest的五个关键词:

1.资源
URI既是地址也是资源的名称.
感觉资源和Java中的对象很像,以下是讯飞星火大模型给出的区别:

web中的资源和Java中的对象在功能用途、生命周期以及访问方式等方面有所不同。具体分析如下:
1.功能用途
Web资源:可以是服务器上存储的任何文件或数据,如HTML文件、图片、脚本等,主要用于构建和服务于Web页面的内容和功能。
Java对象:是编程中的一个基本单元,其实例被用来存储数据并执行特定的业务逻辑。
2.生命周期
Web资源:通常由Web服务器管理,其生命周期与Web服务器的运行状态相关联。
Java对象:生命周期受程序控制,可以在需要时创建,完成任务后销毁。
3.访问方式
Web资源:可以通过HTTP请求直接访问,例如通过浏览器输入URL获取网页内容。
Java对象:主要通过编程语言内部的调用和引用来访问。
4.更新机制
Web资源:更新通常涉及文件的重新上传和服务器配置的修改。
Java对象:更新是通过代码的修订和重新部署来实现的。
总的来说,Web资源和Java对象虽然都是计算机系统中用于处理数据和功能的实体,但它们在概念、使用场景以及管理和访问方式上有显著的不同。Web资源侧重于数据的表示和传输,而Java对象则强调在程序逻辑中的作用和行为。

2.资源的表述
资源在某个特定时刻的状态的描述。格式可以为HTML、XML、JSON、文本等。
3.状态转移
在客户端和服务器之间转移代表资源状态的表述。通过转移和操作资源的表述间接实现操作资源的目的。
4.统一接口
rest必须通过统一的接口来对资源执行各种操作,每个资源只能执行一组有限的操作。
5. 超文本驱动
又名将超媒体作为应用状态的引擎。超媒体中不仅包含数据还包含状态迁移的语义。

rest结构的特点:

  1. 面向资源
    rest架构是以资源为核心展开的。
  2. 可寻址
    每个资源都有自己的地址
  3. 连通性
    尽量通过超链接将资源关联起来
  4. 无状态
  5. 统一接口
  6. 超文本驱动

选择rest架构的好处

  1. 简单
  2. 可伸缩性
  3. 松耦合

缺点:

1.资源的复杂性,很难将资源进行划分。
2.业务很复杂,有些操作不能对应到PUT、GET、DELETE、POST上面
3. 有的客户端不支持DELETE、PUT等请求。

RESTful API:REST架构风格在WEB领域的一种具体实现方式

● restful api使用HTTP方法来表示对资源的操作
get:获取资源、post:新增资源、put:更新资源、delete:删除资源
● 使用HTTP状态码表示操作结果的示例(仅展示前端,以"手机"资源为例)
post–新增信息

$.ajax({
  url: "/phones",
  type: "POST",
  contentType: "application/json",
  data: JSON.stringify({
    name: "手机",
    description: "苹果牌"
  }),
  dataType: "json",
  success: function(data) {
    console.log("创建成功:", data);
  },
  error: function(xhr, status, error) {
    console.error("创建手机资源失败:", error);
  }
});

get–获取信息

$.ajax({
  url: "/phones/1",
  type: "GET",
  dataType: "json",
  success: function(data) {
    console.log("指定手机资源:", data);
  },
  error: function(xhr, status, error) {
    console.error("获取指定手机资源失败:", error);
  }
});

put:更新信息

$.ajax({
  url: "/phones/1",
  type: "PUT",
  contentType: "application/json",
  data: JSON.stringify({
    name: "手机1",
    description: "更新后的苹果手机"
  }),
  dataType: "json",
  success: function(data) {
    console.log("更新成功:", data);
  },
  error: function(xhr, status, error) {
    console.error("更新失败:", error);
  }
});

案例四:delete删除信息

$.ajax({
  url: "/phones/1",
  type: "DELETE",
  dataType: "json",
  success: function(data) {
    console.log("删除手机资源成功:", data);
  },
  error: function(xhr, status, error) {
    console.error("删除手机资源失败:", error);
  }
});

相关文献

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值