RESTful学习笔记(一)

news2025/4/25 19:58:58

Web发展

一、API

程序硬件接口(Application Programming Interface),是预先定义好的逻辑函数,软件系统不同组成部分衔接的约定,直接调用函数,无序访问代码细节,分为SDK和Web应用接口两类

SDK:B程序部分功能直接打包给A程序,A程序可直接使用,如java jar包

web应用接口:B程序对外提供访问路径(入口),A程序按照约定好的访问方式访问,如具有http协议请求的访问

例子:快递单号查询(底层发送请求,根据API提供的访问路径)->对应到从入库到签收的流水记录信息(response一般是Json信息)

二、Web发展阶段

静态内容:html静态文档组成,用于研究

CGI阶段:增加了编程API,提供动态变化内容

脚本语言阶段:网站内容的兴起,把相关的图片文件按照一些规则组合在一起,如PHP等服务器端

瘦客户端阶段:MVC,前后端分离,前端只做展示,后端做数据处理

富客户端阶段:外表美观JS技术,不仅仅是简单的页面拼接,如古早的easyUI,extjsUI等后端管理,以及现在的bootstrapUI、layUI、elementUI等优雅的后端管理界面风格UI

移动Web应用阶段(现在):因为现在手机不离手,所以出现大量面向移动设备(手机、平板)的应用开发技术,如基于HTML5的开发技术

三、开发模式发展

传统开发模式:一个服务器,前后端严重耦合,后端人还得学JS和html,一旦后端换语言,前端也要重新开发

前后端分离模式(现在):两个服务器(前端服务器【纯静态资源】,接口服务器【接收、处理、响应请求,全是数据操作,没有涉及页面】);浏览器发静态页面请求给前端服务器,前端ajax异步列表请求到接口服务器,接口服务器响应JSON格式数组数据给前端服务器,前端服务器将要响应回的单纯的页面(list.html),将数据通过JS/vue/jquery语言渲染到前端页面,进行页面数据组合。前端不管是什么形式,不管是小程序还是APP,只要能正确发送请求到接口,就都能取到对应数据

RESTful风格接口设计

存在原因:人们越来越依赖手机,客户端可能是APP或者小程序,服务器端要提供一套统一的API接口,使得不管是APP还是小程序形式的客户端都能基于相同的规则和协议就能调用API接口获得预期数据

如同样的路径(添加员工):最后的子路径A员工设定的是add,B员工设定的是xinzeng(英文不好)

优雅统一API方法:遵循rest规范,因为比较简单易读,满足rest约束条件和原则的应用程序设计就是RESTful应用

一、约束规范

传统模式

@Controller:容器管理

@RequestMapping(不管什么样的请求方式都能请求)后面跟上要访问的路径(见名知意)

rest风格

1、路径:由当前接口操作资源(rstful眼中一切都是资源,每个资源有唯一的定位符URI【图片、网页、路径都是资源,对应URI就是请求的路径】);资源不只有一个(如员工有很多个员工,,所以资源的名称采用复数如employees),@RequestMapping("/employees"),具体是哪个员工由传入的参数决定

2、请求方式(不同请求方式对应不同的操作请求):

GET---查询(从服务器取资源);POST---在服务器新建一个资源;PUT---更新资源(更新整个对象);PATCH---更新资源(更新个别属性);DELETE---删除资源

传统路径见名知意=restful路径+请求方式(POST对应add添加)

例:GET/zoos:列出所有动物园;GET/zoos/{id}:列出指定动物园信息;

3、请求参数---由需求决定

4、请求响应(数据返回的格式)---一般是json格式

二、拓展

HTTP响应码

200---响应成功;400---请求参数出错;401/403---用户不能访问(401是没权限,403是有权限但被禁止);404---请求针对的是不存在的记录;500---服务器发生错误,用户无法判断请求是否成功

资源表现形式

accept:客户端期望返回的数据类型(对服务器端返回的数据类型作限制)

content-type:说明带过去和响应回来的数据都是什么格式

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2342664.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第5课:对象与类——JS的“信息收纳盒”

生活从不会亏待每一个努力向上的人,愿你带着满腔热忱,无畏前行,用汗水书写青春的华章,用拼搏铸就人生的辉煌,今日的每一份付出,都将是未来成功的基石! 欢迎来到「JavaScript 魔法学院」第 5 课…

xshell 登录验证失败解决

产生原因:检查防火墙、selinux 、网络模式、对外是否能ping外网 systemctl status firewalld cat /etc/selinux/config #disabled ping 223.5.5.5 ping 8.8.8.8 ping www.baidu.com 一、检查网络连接 确认虚拟机是否在线: 首先,确保虚…

AI 赋能 3D 创作!Tripo3D 全功能深度解析与实操教程

大家好,欢迎来到本期科技工具分享! 今天要给大家带来一款革命性的 AI 3D 模型生成平台 ——Tripo3D。 无论你是游戏开发者、设计师,还是 3D 建模爱好者,只要想降低创作门槛、提升效率,这款工具都值得深入了解。 接下…

AI书籍大模型微调-基于亮数据获取垂直数据集

大模型的开源,使得每位小伙伴都能获得AI的加持,包括你可以通过AIGC完成工作总结,图片生成等。这种加持是通用性的,并不会对个人的工作带来定制的影响,因此各个行业都出现了垂直领域大模型。 垂直大模型是如何训练出来…

Kafka命令行的使用/Spark-Streaming核心编程(二)

Kafka命令行的使用 创建topic kafka-topics.sh --create --zookeeper node01:2181,node02:2181,node03:2181 --topic test1 --partitions 3 --replication-factor 3 分区数量,副本数量,都是必须的。 数据的形式: 主题名称-分区编号。 在…

2020-06-23 暑期学习日更计划(机器学习入门之路(资源汇总)+概率论)

机器学习入门 前言 说实话,机器学习想学好真心不易,很多时候都感觉自己学得云里雾里。以前一段时间自己为了完成毕业设计,在机器学习的理论部分并没有深究,仅仅通过TensorFlow框架力求快速实现模型。现在来看,很多时候…

SQL 时间转换的CONVERT()函数应用说明

目录 1.常用查询使用的几个 2.其他总结 1.常用查询使用的几个 SELECT CONVERT(VARCHAR, GETDATE(), 112) SELECT CONVERT(VARCHAR, GETDATE(), 113)SELECT CONVERT(VARCHAR, GETDATE()-1, 112) SELECT CONVERT(VARCHAR, GETDATE()-1, 113) 2.其他总结 SELECT CONVERT(VARCHA…

SystemWeaver详解:从入门到精通的深度实战指南

SystemWeaver详解:从入门到精通的深度实战指南 文章目录 SystemWeaver详解:从入门到精通的深度实战指南一、SystemWeaver环境搭建与基础配置1.1 多平台安装全流程 二、新手必学的十大核心操作2.1 项目创建全流程2.2 建模工具箱深度解析 三、需求工程与系…

windows中kafka4.0集群搭建

参考文献 Apache Kafka windows启动kafka4.0(不再需要zookeeper)_kafka压缩包-CSDN博客 Kafka 4.0 KRaft集群部署_kafka4.0集群部署-CSDN博客 正文 注意jdk需要17版本以上的 修改D:\software\kafka_2.13-4.0.0\node1\config\server.properties配置文…

【JavaWeb后端开发04】java操作数据库(JDBC + Mybatis+ yml格式)详解

文章目录 1. 前言2. JDBC2.1 介绍2.2 入门程序2.2.1 DataGrip2.2.2 在IDEA执行sql语句 2.3 查询数据案例2.3.1 需求2.3.2 准备工作2.3.3 AI代码实现2.3.4 代码剖析2.3.4.1 ResultSet2.3.4.2 预编译SQL2.3.4.2.1 SQL注入2.3.4.2.2 SQL注入解决2.3.4.2.3 性能更高 2.4 增删改数据…

postman 删除注销账号

一、删除账号 1.右上角找到 头像,view profile https://123456-6586950.postman.co/settings/me/account 二、找回账号 1.查看日志所在位置 三、postman更新后只剩下history 在 Postman 中,如果你发现更新后只剩下 History(历史记录&…

Java发展史及版本详细说明

Java发展史及版本详细说明 1. Java 1.0(1996年1月23日) 核心功能: 首个正式版本,支持面向对象编程、垃圾回收、网络编程。包含基础类库(java.lang、java.io、java.awt)。支持Applet(浏览器嵌入…

React 5 种组件提取思路与实践

在开发时,经常遇到一些高度重复但略有差异的 UI 模式,此时我们当然会把组件提取出去,但是组件提取的方式有很多,怎么根据不同场景选取合适的方式呢?尤其时在复杂的业务场景中,组件提取的思路影响着着代码的可维护性、可读性以及扩展性。本文将以一个[详情]组件为例,探讨…

[java八股文][Java基础面试篇]I/O

Java怎么实现网络IO高并发编程? 可以用 Java NIO ,是一种同步非阻塞的I/O模型,也是I/O多路复用的基础。 传统的BIO里面socket.read(),如果TCP RecvBuffer里没有数据,函数会一直阻塞,直到收到数据&#xf…

数据结构-冒泡排序(Python)

目录 冒泡排序算法思想 冒泡排序算法步骤 冒泡排序代码实现 冒泡排序算法分析 冒泡排序算法思想 冒泡排序(Bubble Sort)基本思想: 经过多次迭代,通过相邻元素之间的比较与交换,使值较小的元素逐步从后面移到前面…

深入理解React高阶组件(HOC):原理、实现与应用实践

组件复用的艺术 在React应用开发中,随着项目规模的增长,组件逻辑的复用变得越来越重要。传统的组件复用方式如组件组合和props传递在某些复杂场景下显得力不从心。高阶组件(Higher-Order Component,简称HOC)作为React中…

Neo4j社区版在win下安装教程(非docker环境)

要在 Windows 10 上安装 Neo4j 社区版数据库并且不使用 Docker Desktop,你可以按照以下步骤操作: 1. 安装 Java Development Kit (JDK) Neo4j 需要 Java 运行环境。推荐安装 JDK 17 或 JDK 11(请根据你下载的 Neo4j 版本查看具体的兼容性要…

如何在 Odoo 18 中配置自动化动作

如何在 Odoo 18 中配置自动化动作 Odoo是一款多功能的业务管理平台,旨在帮助各种规模的企业更高效地处理日常运营。凭借其涵盖销售、库存、客户关系管理(CRM)、会计和人力资源等领域的多样化模块,Odoo 简化了业务流程&#xff0c…

node.js 实战——(Http 知识点学习)

HTTP 又称为超文本传输协议 是一种基于TCP/IP的应用层通信协议;这个协议详细规定了 浏览器 和万维网 服务器 之间互相通信的规则。协议中主要规定了两个方面的内容: 客户端:用来向服务器发送数据,可以被称之为请求报文服务端&am…

新市场环境下新能源汽车电流传感技术发展前瞻

新能源革命重构产业格局 在全球碳中和战略驱动下,新能源汽车产业正经历结构性变革。国际清洁交通委员会(ICCT)最新报告显示,2023年全球新能源汽车渗透率突破18%,中国市场以42%的市占率持续领跑。这种产业变革正沿着&q…