Restful 接口设计-前言(手把手教你入门到精通)

news2025/7/20 13:03:52

文章目录

  • 前言一:什么是API
    • 分类一
    • 分类二
  • 前言二:Web的发展
  • 前言三:传统开发模式VS前后端分离
    • 传统的开发模式
    • 前后端分离


了解API和Web的发展有利于帮助你掌握Restful接口设计

前言一:什么是API

API(Application Programming Interface, 应用程序接口),是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或者硬件得以访问一组例程的能力,而无需访问源码,或者理解内部的共组机制的细节。

分类一

a程序需要b程序部分功能,只需要将b程序部分功能打包,交给a程序直接使用。
比如:Java中的jar包,这种API一般称之为SDK。

分类二

a程序或者项目 需要 b程序或者项目的部分功能,只需要b程序或者项目对外提供一个访问路径(入口),a程序按照约定好的访问方式进行访问,即可实现对象的功能。
比如:具有http协议请求访问,这种API称之为web应用接口。

具体例子如下:
在这里插入图片描述

点击例如的单号,自动填入到输入单号中,按F12,再点击查快递
在这里插入图片描述

我们可以看到这种风格就是web应用接口。

前言二:Web的发展

Web 开发技术的发展可以粗略划分成以下几个阶段
静态内容阶段:在这个最初的阶段,使用 Web 的主要是一些研究机构。 Web 由大量的静态 HTML 文档组成。
CGI 程序阶段:在这个阶段, Web 服务器增加了一些编程 APl 。通过这些 API 编写的应用程序,可以向客户端提供一些动态变化的内
容。
脚本语言阶段:在这个阶段,服务器端出现了 ASP 、 PHP 、 JSP 、 ColdFusion 等支持 session 的脚本语言技术,浏览器端出现了 Java Applet 、 JavaScript 等技术。使用这些技术,可以提供更加丰富的动态内容。
瘦客户端应用阶段:在这个阶段,在服务器端出现了独立于 Web 服务器的应用服务器。同时出现了 Web MVC 开发模式,各种 Web MVC 开发框架逐渐流行,并且占据了统治地位。基于这些框架开发的 Web 应用,通常都是瘦客户端应用,因为它们是在服务器端生成全
部的动态内容。
RIA 应用阶段:在这个阶段,出现了多种 RIA ( Rich Internt Application )技术,大幅改善了 Web 应用的用户体验。应用最为广泛的 RIA 技术是 DHTML + Ajax 。 Ajax 技术支持在不刷新页面的情况下动态更新页面中的局部内容。同时诞生了大量的 Web 前端 DHTML 开发库,例如 Prototype 、 Dojo 、 ExtJS 、 jQuery / jQuery UI 等等。
移动 Web 应用阶段:在这个阶段,出现了大量面向移动设备的 Web 应用开发技术。除了 Android 、 iOS 、 Windows Phone 等操作系统平台原生的开发技术之外,基于HTML5的开发技术也变得非常流行。

前言三:传统开发模式VS前后端分离

传统的开发模式

前端写好静态的 html 页面交给后端开发,后端把 html 改成模板,然后使用模板引擎去套模板,比如 jsp , freemarke
后端人员在开发过程中如果发现页面有问题,要返回给前端修改,前端再交给后端,直至功能实现。
问题:前后端严重耦合

  1. 前端需要改 bug 调试时,需要在当前电脑安装一整套后端的开发工具,启动后端程序。
  2. 还要求后端人员会 html , js 等前端语言。
  3. 前端页面也会嵌入很多后端的代码 ;
  4. 一旦后端换了一套语言,前端也需要重新开发
  5. 沟通成本,调试成本,前后端开发进度相互影响,从而大大降低开发效率。

前后端分离

在这里插入图片描述

前后端分离并不只是开发模式,也是 web 应用的一种架构模式。
在开发阶段,前后端人员约定好数据交互接口,即可并行开发与测试。
前端开发完成可以独自进行 mock 测试,后端也可以使用 postman 等接口测试工具进行测试。最后可进行功能联调测试。
优点:
1.前后端责任清晰,后端专注于数据上,前端专注于视觉上。
2.无需等待对方的开发工作结束,提高开发效率。
3.可应对复杂多变的前端需求。
4.增强代码可维护性
在这里插入图片描述

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

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

相关文章

第三章 多维随机变量及其分布

思维导图 基础知识 二维随机变量 我们研究一个多维的东西,往往先从较低的维度比如说二维作为主要的研究对象,一个是因为维度低会比较简单,易于理解;另一个则是考试中低维的问题往往更加常见 定义与分布函数 定义上其实很简单&am…

双亲委派机制

Java 虚拟机对 class 文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的 class 文件加载到内存生成 class 对象。而且加载某个类的 class 文件时,Java 虚拟机采用的是双亲委派模式,即把请求交由父类处理,它是一种任…

【Pytorch with fastai】第 6 章 :其他计算机视觉问题

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

【MySQL】数据库中表的增删查改操作详解

文章目录前言SQL的通用语法一、表的创建与表的新增语法数据类型的介绍演示二、表的删除语法删整张表的语法删记录的语法演示三、表的查询查询整张表(一)全列查询(二)指定列查询(三)带表达式的查询&#xff…

深入ftrace function graph功能

学习完了ftrace的function的基本功能,其作用主要是用来跟踪特定内核函数调用的频次,对于内核,特别是初学者,对于函数的调用关系不清晰,并且内核中有很多函数指针,会把我们弄的摸不着头脑,那么我…

C语言百日刷题第九天

前言 今天是刷题第9天,放弃不难,但坚持一定很酷~ 快来跟我一起刷题吧。 加油,一起努力进步 C语言百日刷题第九天前言76.计算偶数的所有质因子77. 提取不重复的整数78.二进制中1的个数79.猴子分桃80.百钱买百鸡76.计算偶数的所有质因子 输入…

可防离职员工冒用身份,合合信息名片全能王与钉钉用数字名片打造安全“围栏”

名片全能王与钉钉发布数字名片:可防离职员工冒用身份,追踪营销线索 名片是人际交往中的一条纽带。秦汉有竹制的“谒”,唐代纸质的“名刺”也被沿用许久。如今,无实体的数字名片在商务人士中已十分普及,科技加持下&…

共享存储知识

文章目录一、架构图二、RAID(廉价冗余磁盘整列)三、存储操作四、FusionCompute对接存储五、添加数据存储时的选项六、磁盘配置模式七、磁盘模式八、快照九、FC-SAN一、架构图 SAN(存储区域网络) IP-SAN(SCSI协议封装在…

Linux多线程C++版 线程基础 进程和线程关系 线程分类 Linux线程实现 线程表示

目录1.线程的基础2.进程和线程的关系3.线程分类 了解4.Linux线程实现5.线程标识1.线程的基础 进程是资源管理的最小单位,线程是程序执行最小单位。每个进程有自己的数据段,代码段和堆栈段。线程通常叫做轻型的进程,它包含独立的栈和CPU寄存器…

[附源码]java毕业设计基于的楼盘销售管理系统论文2022

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

SpringCloud Gateway 自定义Filter用代码怎么写?别再说我只会配置基本Filter了,来学学如何定制Filter过滤器

文章目录学习SpringCloud Gateway自定义全局Filter(GlobalFilter)ServerWebExchange自定义非全局Filter(GatewayFilter)学习SpringCloud Gateway SpringCloud Gateway使用及原理分析大全——断言及过滤器(上篇&#x…

【openwrt】libubox组件——uloop_process

uloop_processuloop_process主要数据结构struct list_head processesstruct uloop_processuloop_process主要函数uloop_handle_processesuloop_process原理uloop_process使用示例uloop_process 是 Libubox 提供的一个进程管理工具,它主要用来等待子进程工作的结束,一…

DAP和IAP

DAP和IAP DAP模型:通过训练样本学习一组属性分类器直接预测测试样本的属性。 IAP模型:通过训练样本的类别,(多分类器)间接预测测试样本的属性。 两者之间的区别:属性分类器的学习方式,DAP是一组…

labelme做标注

1.anaconda 安装 anaconda下载地址如下: 官网 一直下一步,注意下面这个地方 同时手动配置环境变量,下面三个路径需添加 Anaconda安装路径 Anaconda安装路径\Scripts Anaconda安装路径\Library\bin 最后测试一下 cmd 依次输入 conda…

云原生周刊 | 百家争鸣的边缘计算时代即将到来?| 2022-11-14

今年的 KubeCon 大会有一个很奇怪的现象,到场的几乎都是小公司,没有大公司。可能是因为这些大公司恰好在这个时候都有自己的活动要举办,也有可能是他们正在快马加鞭研发他们的边缘计算方案?因为 Gartner 预测到 2025 年&#xff0…

Mybatis—LanguageDriver

LanguageDriver主要用于构造SqlSource和ParameterHandler,从LanguageDriver在Mybatis中调用链路来看,Configuration#newParameterHandler通过调用LanguageDriver#createParameterHandler完成构建ParameterHandler,通过调用LanguageDriver#cre…

缺流量时代,App们需要如何突围?

距离上一个现象级的应用抖音出现已经过去了6年,如今App市场万马齐喑,巨头创新不断,中小团队异军突起的App黄金时代一去不返。 你的App里多久没有出现过一款新应用了? 距离上一个现象级的应用抖音出现已经过去了6年,那…

基于加权对立和贪婪搜索多模态工程问题的黑猩猩优化算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【网络安全】处理应急响应的简单方法

目录 一、应急响应 (1)概念 (2)分类 二、如何处理 (1)查看日志 (2)封堵ip (3)代码加固 (4)安装防火墙 (5&#x…

sqli通关笔记

sqli通关学习笔记 目录sqli通关学习笔记Less-1Less-2Less-3Less-4Less-5Less-5Less-6导入导出文件相关的操作Less-7Less-8Less-9Less-10Less-11Less-12Less-13Less-14Less-15Less-16增删改函数介绍Less-17HTTP 头部介绍Less-18Less-19Less-20Less-21Less-22高级注入&#xff0c…