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

RESTful学习笔记(一)

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:说明带过去和响应回来的数据都是什么格式

 

相关文章:

RESTful学习笔记(一)

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

基于 FFmpeg 的音视频处理基础原理与实验探究

目录 1 基本知识1.1 解封装1.2 AAC和ADTS说明 1.3 H2641.3.1 H264编码结构解析1.3.2 NALU1.3.2 分类 2 实验1 探究音视频信息2.1 重要结构体介绍2.2 相关的API 3 实验二 提取AAC数据4 实验三 提取h264 1 基本知识 1.1 解封装 封装的逆向操作:封装是把音频流、视频流…...

spark和hadoop的区别

一、核心定位与架构差异 Hadoop • 定位:分布式存储与计算的基础框架,核心解决海量数据的存储(HDFS)和离线批处理计算(MapReduce)问题,适合对实时性要求不高的大规模数据离线处理场景。 • 架构…...

vue使用语音识别

vue使用语音识别 使用 Web Speech API 实现语音识别功能 语音转换的原理可以简单概括为以下几个步骤: 声音捕捉:将声波转化为数字信号。特征提取:分析声音中的关键特征。声学模型:将声音特征与音素匹配。语言模型:根据…...

代码随想录算法训练营day8(栈与队列)

华子目录 用栈实现队列思路 用栈实现队列 https://leetcode.cn/problems/implement-queue-using-stacks/description/ push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。思路 初始化两个栈…...

GPT,Genini, Claude Llama, DeepSeek,Qwen,Grok,选对LLM大模型真的可以事半功倍!

选对大模型真的可以事半功倍! 基于公开的技术报告、基准测试结果、在线反馈及用户使用情况,深入探讨各模型的特点、擅长领域及典型应用场景,为用户和开发者选择和应用合适的模型提供参考。 1. 引言 大型语言模型(Large Language…...

Unocss 类名基操, tailwindcss 类名

这里只列出 unocss 的可实现类名&#xff0c;tailwindcss 可以拿去试试用 1. 父元素移入&#xff0c;子元素改样式 <!-- 必须是 group 类名 --> <div class"group"><div class"group-hover:color-red">Text</div> </div>2…...

Flowable7.x学习笔记(十)分页查询已部署 BPMN XML 流程

前言 上一篇文章我们已经完成了流程的部署功能&#xff0c;那么下一步就是要激活流程了&#xff0c;但是我们要需要明确的指定具体要激活部署后的哪一条流程&#xff0c;所以我们先把已部署的基础信息以及具体定义信息分页查询出来&#xff0c;本文先把基础代码生成以及完成分页…...

【阿里云大模型高级工程师ACP学习笔记】2.1 用大模型构建新人答疑机器人

学习目标 在备考阿里云大模型高级工程师ACP认证时,学习《2.1用大模型构建新人答疑机器人》这部分内容,主要是为了掌握利用大模型技术构建高效答疑机器人的方法,提升在大模型应用开发领域的专业能力。具体目标如下: 掌握大模型API调用:学会通过API调用通义千问大模型,熟悉…...

设计模式深度总结:概念、实现与框架中的应用

【全网最全】23种设计模式思维导图详解 | 含React/Vue/Spring实战案例 导图概述 本文通过高清思维导图系统梳理了23种设计模式&#xff0c;分为创建型、结构型、行为型三大类&#xff0c;并标注了各模式在主流框架&#xff08;如React、Vue、Spring&#xff09;中的典型应用场…...

2025 活体识别+人脸认证工具类【阿里云api,需要先申请试用】

&#xff08;1&#xff09;获取活体检测的人脸URL地址和Token。 &#xff08;2&#xff09;活体检测成功后&#xff0c;使用Token验证人脸检测结果的一致性。 &#xff08;3&#xff09;对于检测结果一致的人脸照片&#xff0c;进行姓名、身份证号和照片的认证流程。 一、活…...

【HDFS】verifyEC命令校验EC数据正确性

verifyEC命令是HDFS里用于验证EC文件正确性的一个工具。这是一个非常实用的工具,能帮助我们确定EC的数据内容是否正确,并且如果不正确的话,还有可能会触发reportBadBlock给NN,让NN进行块的重构。 本文先介绍一下verifyEC命令的使用方法,再描述其实现原理细节。 一、命令…...

【PCIE730】基于PCIe总线架构的4路10G光纤通道适配器

板卡简介 PCIE730是一款基于PCI Express总线架构的4路10G光纤通道适配器&#xff0c;板卡具有4通道SFP万兆光纤接口&#xff0c;x8 PCIE主机接口&#xff0c;具有1组64位DDR3 SDRAM作为高速缓存&#xff0c;可以实现4通道光纤网络数据的高速采集、实时记录和宽带回放。 该板卡还…...

蚂蚁全媒体总编刘鑫炜再添新职,出任共工新闻社新媒体研究院院长

2025年4月18日&#xff0c;共工新闻社正式宣布聘任蚂蚁全媒体总编刘鑫炜为新媒体研究院院长。此次任命标志着刘鑫炜在新媒体领域的专业能力与行业贡献再次获得权威机构认可。 刘鑫炜深耕新媒体领域多年&#xff0c;曾担任中国新闻传媒集团新媒体研究院院长、蚂蚁全媒体总编等职…...

C++11——可调用对象

目录 lambda 表达式语法 捕捉列表 function bind 调整参数个数 参数顺序 lambda 表达式语法 lambda表达式本质上是匿名函数对象&#xff0c;该表达式在语法使用层是没有类型的&#xff0c;一般用auto或模板参数定义的对象去接收它的对象&#xff08;模板参数定义的对象…...

【上位机——MFC】运行时类信息机制

运行时类信息机制的使用 类必须派生自CObject类内必须添加声明宏DECLARE_DYNAMIC(theClass)3.类外必须添加实现宏 IMPLEMENT_DYNAMIC(theClass,baseClass) 具备上述三个条件后&#xff0c;CObject::IsKindOf函数就可以正确判断对象是否属于某个类。 代码示例 #include <…...

数据中的知识产权问题

首席数据官高鹏律师团队编著 数据中的知识产权问题涉及法律、技术和社会多个层面&#xff0c;其复杂性随着数据价值的提升和数字化发展日益凸显。以下是核心要点的梳理和分析&#xff1a; 一、数据本身的知识产权属性 1. 原始数据&#xff08;Raw Data&#xff09; 通常不直…...

若依框架免登陆、页面全屏显示、打开新标签页(看板大屏)

1.免登陆&#xff1a;找到项目目录下src/permission.js&#xff0c;在白名单whiteList中添加上你的看板大屏路由地址&#xff0c;这样就不会校验该路由的token&#xff08;这里我添加的是/mesBoard/mesqualityboard&#xff09;&#xff1b; 要注意的是此时免登陆进来也会报404…...

算法-策略(递归,二叉搜索)

分而治之 一个大问题不断拆成各种小问题&#xff0c;大问题与小问题的方向要一致。 递归函数(递减) 分析时间函数的两种方法&#xff1a;递归树(跟踪树) &#xff0c;代换法。 例1 例2 这里的代换法注意&#xff0c;不要轻易的把常数加在一起&#xff0c;加在一起后看不出规…...

unity TEngine学习4

上一篇我们学习了UI部分&#xff0c;这一篇我们学习其他部分&#xff0c;按照老规矩还是先打开官方文档 ResourceModule 在官方文档里介绍了当前加载的设置&#xff0c;但是我们是小白看不懂&#xff0c;那就不管他内部怎么实现的&#xff0c;我们主要看下面的代码给的方法&am…...

掌握常见 HTTP 方法:GET、POST、PUT 到 CONNECT 全面梳理

今天面试还问了除了 get 和 post 方法还有其他请求方法吗&#xff0c;一个都不知道&#xff0c;这里记录下。 &#x1f310; 常见 HTTP 请求方法一览 方法作用描述是否幂等是否常用GET获取资源&#xff0c;参数一般拼接在 URL 中✅ 是✅ 常用POST创建资源 / 提交数据&#xff…...

在线查看【免费】 mp3,wav,mp4,flv 等音视频格式文件文件格式网站

可以免费在线查看 .docx/wps/Office/wmf/ psd/ psd/eml/epub/dwg, dxf/ txt/zip, rar/ jpg/mp3 m.gszh.xyz m.gszh.xyz 免费支持以下格式文件在线查看类型 支持 doc, docx, xls, xlsx, xlsm, ppt, pptx, csv, tsv, dotm, xlt, xltm, dot, dotx, xlam, xla, pages 等 Office 办…...

部署Kimi-VL-A3B-Instruct视频推理

部署Kimi-VL-A3B-Instruct视频推理 契机 ⚙ 最近国内AI公司月之暗面推出了Kimi-VL开源视觉模型。模型参数16.4B&#xff0c;但是推理时候激活参数2.8B。看了huggingface主页的Full comparison&#xff0c;在多项Benchmark的时候都展示出了不俗的实力。由于业务中使用了qwen-v…...

力扣面试经典150题(第二十四题)

问题 给定一个单词数组 words 和一个长度 maxWidth &#xff0c;重新排版单词&#xff0c;使其成为每行恰好有 maxWidth 个字符&#xff0c;且左右两端对齐的文本。 你应该使用 “贪心算法” 来放置给定的单词&#xff1b;也就是说&#xff0c;尽可能多地往每行中放置单词。必…...

Electron Demo 的快速编译与启动

前言 本文将带你从零开始&#xff0c;快速搭建并运行一个基于 OpenIMSDK 的 Electron 应用。本项目以 OpenIMSDK 开源版为基础&#xff0c;借助 openim/electron-client-sdk 与 openim/wasm-client-sdk&#xff0c;能够同时构建 Web 端及桌面端&#xff08;Windows、macOS、Lin…...

Web3核心技术解析:从区块链到C++实践

Web3作为下一代互联网的核心架构&#xff0c;正在通过区块链、智能合约、分布式存储等技术的融合&#xff0c;重塑数字世界的信任与协作模式。本文将从技术原理、应用场景及C实践案例三个维度&#xff0c;深入解析Web3的核心技术体系。 一、Web3的核心技术栈 1. 区块链&#x…...

Elasticsearch中的_source字段讲解

_source 在 Elasticsearch 查询中用于限制返回的字段,类似于 SQL 中的 SELECT 指定列。 代码示例: esSearchResults = es_service.search_documents({"query": {"terms": {"file_id":...

LlamaIndex 生成的本地索引文件和文件夹详解

LlamaIndex 生成的本地索引文件和文件夹详解 LlamaIndex 在生成本地索引时会创建一个 storage 文件夹&#xff0c;并在其中生成多个 JSON 文件。以下是每个文件的详细解释&#xff1a; 1. storage 文件夹结构 1.1 docstore.json 功能&#xff1a;存储文档内容及其相关信息。…...

笔记:react中 父组件怎么获取子组件中的属性或方法

在子组件中我们可以使用下面两个方法去暴露你所要放行的属性或方法&#x1f447; 1.useImperativeHandle 2.orwardRef 搭配使用例子 import React, { useState, forwardRef, useImperativeHandle } from "react"function Son(props, ref) {const [data] useStat…...

Python+CoppeliaSim+ZMQ remote API控制机器人跳舞

这是一个使用Python和CoppeliaSim&#xff08;V-REP&#xff09;控制ASTI人型机器人进行舞蹈动作的演示项目。 项目描述 本项目展示了如何使用Python通过ZeroMQ远程API与CoppeliaSim仿真环境进行交互&#xff0c;控制ASTI人型机器人执行预定义的舞蹈动作序列。项目包含完整的机…...

oracle rac时区问题导致远程查询时间不准

远程工具SQLDev工具和应用出来的时间都要慢12个小时 检查操作系统和硬件时间 # date Fri Apr 18 15:54:11 CST 2025 date -R Fri, 18 Apr 2025 16:06:24 0800 # hwclock -r Fri 18 Apr 2025 04:08:38 PM CST -0.313786 seconds 都是没有问题&#xff0c;时间和时区都是…...

LPO 光模块:下一代数据中心网络的节能高效新选择

一、LPO 光模块的定义与核心原理 LPO&#xff08;Linear Pluggable Optics&#xff0c;线性可插拔光模块&#xff09;是光通信领域针对高速率、低功耗需求推出的创新解决方案。其核心突破在于摒弃传统光模块中的 DSP&#xff08;数字信号处理&#xff09;芯片&#xff0c;采用线…...

MCP Server Java 开发框架的体验比较(spring ai mcp 和 solon ai mcp)

目前已知的两个 mcp-server java 应用开发框架&#xff08;ID类的&#xff0c;封装后体验都比较简洁&#xff09;&#xff1a; spring-ai-mcp&#xff0c;支持 java17 或以上solon-ai-mcp&#xff0c;支持 java8 或以上&#xff08;也支持集成到 springboot2, jfinal, vert.x …...

OpenCV 图形API(45)颜色空间转换-----将图像从 BGR 色彩空间转换为 YUV 色彩空间函数BGR2YUV()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将图像从BGR色彩空间转换为YUV色彩空间。 该函数将输入图像从BGR色彩空间转换为YUV。B、G和R通道值的常规范围是0到255。 输出图像必须是8位无符…...

C++入门语法

C入门 首先第一点&#xff0c;C中可以混用C语言中的语法。但是C语言是不兼容C的。C主要是为了改进C语言而创建的一门语言&#xff0c;就是有人用C语言用不爽了&#xff0c;改出来个C。 命名空间 c语言中会有如下这样的问题&#xff1a; 那么C为了解决这个问题就整出了一个命名…...

个性化的配置AndroidStudio

Android Studio 提供诸多向导和模板&#xff0c;可用于验证 Java 开发套件 (JDK) 和可用 RAM 等系统要求&#xff0c;以及配置默认设置&#xff0c;例如经过优化的默认 Android 虚拟设备 (AVD) 模拟和更新的系统映像。本文档介绍了可用于自定义 Android Studio 使用方式的其他配…...

Python-24:小R的随机播放顺序

问题描述 小R有一个特殊的随机播放规则。他首先播放歌单中的第一首歌&#xff0c;播放后将其从歌单中移除。如果歌单中还有歌曲&#xff0c;则会将当前第一首歌移到最后一首。这个过程会一直重复&#xff0c;直到歌单中没有任何歌曲。 例如&#xff0c;给定歌单 [5, 3, 2, 1,…...

JavaScript — 总结

介绍 JavaScript是一种广泛应用于Web开发的高级脚本语言&#xff0c;主要用于为网页添加交互功能。作为前端开发的三大核心技术之一&#xff0c;它与HTML&#xff08;结构&#xff09;和CSS&#xff08;样式&#xff09;协同工作&#xff0c;通过操作DOM元素实现动态内容更新、…...

解决 Ubuntu 下 VTune 无法收集 CPU 硬件时间计数数据的问题

解决 Ubuntu 下 VTune 无法收集 CPU 硬件时间计数数据的问题 在 Ubuntu 上使用 Intel VTune Profiler 时遇到无法收集 CPU 硬件性能计数器数据的问题&#xff0c;通常是由于权限和系统配置问题导致的。以下是解决方案&#xff1a; 1. 检查并加载性能监控模块 首先确保 Linux…...

MySQL《事务》

文章目录 前言一、什么是事务&#xff1f;二、事务的ACID特性三、如何使用事务&#xff1f;3.1 查看支持事务的存储引擎3.2 语法3.3 开启一个事务&#xff0c;执行修改后回滚3.4 开启一个事务&#xff0c;执行修改后提交3.5 保存点3.6 自动/手动提交事务 四、事务的隔离性和隔离…...

微服务划分的思考

为什么 微服务不是十全十美的,不是银弹,是什么原因导致必须要做微服务划分,是否有足够的动机支撑,是项目需要,还是领导的想法,公司层面是否有相应的规划。 拆分后的服务谁来维护,研发同学是否愿意参与 为什么,思考清楚了,接下来看还需要考虑怎么做 单体应用的不足…...

介绍XML

XML&#xff08;Extensible Markup Language&#xff0c;可扩展标记语言&#xff09;是一种用于存储、传输和交换数据的标记语言&#xff0c;由万维网联盟&#xff08;W3C&#xff09;在1998年制定。它通过自定义标签描述数据结构&#xff0c;具有平台无关性、自描述性和结构化…...

从0开始配置spark-local模式

安装Spark的过程就是下载和解压的过程。接下来的操作&#xff0c;我们把它上传到集群中的节点&#xff0c;并解压运行。 1.启动虚拟机 2.通过finalshell连接虚拟机&#xff0c;并上传安装文件到 /opt/software下 3.解压spark安装文件到/opt/module下 tar -zxvf spark-3.3.1-…...

CSS基础-即学即用 -- 笔记1

目录 前言CSS 基础1. 层叠样式表来源理解优先级源码顺序经验法则继承inherit 关键字initial 关键字 2. 相对单位em 和 rem响应式面板视口的相对单位使用vw定义字号使用calc()定义字号自定义属性&#xff08;即CSS变量&#xff09; 3. 盒模型调整盒模型 前言 只需一分钟就能学会…...

日志文件太大,如何分卷压缩便于传输

在IT系统维护和开发工作中&#xff0c;日志文件的作用举足轻重&#xff0c;它不仅记录了系统运行过程中的详细信息&#xff0c;还能帮助技术人员诊断问题、追踪事件和分析性能。 然而&#xff0c;随着系统的长期运行&#xff0c;日志文件可能会迅速膨胀&#xff0c;特别是在高…...

【Django】设置让局域网内的人访问

操作步骤 1. 命令行窗口下查询【本机ip】 ipconfig2. Django项目的全局设置【settings.py】中进行如下设置 ALLOWED_HOSTS ["本机ip"]3. 启动Django项目&#xff1a;命令行下执行如下命令 python manage.py runserver 0.0.0.0:80004. 测试效果&#xff1a;浏览器…...

智慧教室电子班牌-智能管理系统源码,‌后端‌基于Spring Boot框架,前端‌使用Vue.js框架进行组件化开发

智慧班牌系统是一种集成了多种功能的电子班牌&#xff0c;包括校园信息发布、综合素质评价、考勤管理、家校互通、教务管理、考场管理和成绩分析等。它为班级和学校提供了一个多层次、多内容的信息发布平台&#xff0c;同时也为教师、家长和学生提供了一个安全、快捷、全面的互…...

[密码学实战]密评考试训练系统v1.0程序及密评参考题库(获取路径在文末)

[密码学实战]密评考试训练系统v1.0程序及密评参考题库 引言:密评考试的重要性与挑战 商用密码应用安全性评估(简称"密评") 作为我国密码领域的重要认证体系,已成为信息安全从业者的必备技能。根据国家密码管理局最新数据,截至2024年6月,全国仅有3000余人持有…...

Vue如何获取Dom

在Vue中获取DOM元素可以通过几种方法&#xff1a;1、使用模板引用&#xff08;ref&#xff09;&#xff0c;2、使用事件绑定&#xff0c;3、使用生命周期钩子。这些方法各有优缺点&#xff0c;适用于不同的场景。本文将详细介绍这些方法的使用方式及其适用场景&#xff0c;帮助…...

AI大模型 —— 国产大模型 —— 华为大模型

有这么一句话&#xff0c;那就是AI大模型分两种&#xff0c;一种是大模型&#xff1b;另一种是华为大模型。 如果从技术角度来分析&#xff0c;华为的技术不论是在软件还是硬件都比国外的大公司差距极大&#xff0c;甚至有些技术评论者认为华为的软硬件技术至少落后2.5代&#…...