什么是接口呢?
咱们一开始看看现实中的接口,仔细看看下面这张图,你觉得如果要是给图中的手机充电的话,适合用哪根数据线呢?
不用我说,大家应该都知道了,看一看手机的外置接口就知道了。这说明了现实当中的接口必须要满足对方的要求、标准以及规范,才能够进行所谓的连接。
程序当中的接口也是一样的,A程序和B程序二者想要进行连接/联调,必须也要遵循一套规范和标准。如果规范和标准都没有,那么这两个程序是不可能连接在一起的,这是一定的。
总之,程序当中的接口就是程序之间协作所要遵循的一套规范、标准。
接口的优点
我们为什么要学习接口啊?还不是因为它有一些优点,你说是不是啊?那么程序当中应用接口有哪些优点和好处呢?
先看一看下面这张图,是不是还挺逗的😊
从上图中我们能够意识到哪些东西呢?其实,在咱们实际开发中,程序也是分为前端和后端的,前端很容易理解,就是咱们能够直接看得见摸得着的那些个东东,而后端就是隐藏在现实背后的东东。也就说我们现在分清楚了什么是前台和后台,即:
- 前台:负责展示一些东西
- 后台:进行所谓的数据处理
好了,回到主题,程序当中应用接口有哪些优点和好处呢?下面我会一一道来。
优点一:责任划分清晰
在实际开发当中,这一优点意义还是很大的,因为在很多情况下,我们找到了一些bug,但是我们要分清楚这到底是前台的问题呢?还是后台的问题呢?所以,一定要划分清楚责任才可以!
所谓的划分前后台的一个责任清晰度,有什么好处呢?就是我们在发现bug的时候,是给前台程序员张三传过去呢?还是给后台程序员李四传过去呢?我们可不能传错了,因为传错了,那人家程序员肯定就会超级不开心,对不对!明明不是他的问题,还一个劲地说他有问题,那肯定是不可以的。
优点二:缩短研发周期
当前端和后端都有一个很明确的一个目标时,就会各自干各自的事情,这样大家的研发周期就会缩短了。
优点三:可扩展性强
就拿现实当中开发的程序来给大家来吧!今天有1、2、3这三个功能,明天我想再加一个功能,可不可以呢?可以,只要再加的那个新功能满足接口当中所要求的那些规范、规则,那么你就可以加!
API接口
概念
应用程序编程接口(API:Application Programming Interface)指的是以HTTP协议形式提供,定义了输入、输出功能描述的服务。
举例说明一下API接口
这里我给大家准备了一张图,用实际的案例给大家说明了一下API接口。
从上图可以清楚地知道,前端和后端他们两者想进行数据交互的时候,必须要有接口文档,而接口文档就是指定的那套规则、规矩。这个规矩、规范是由谁来定的呢?一般来说,是由你公司的架构师,或者是由你公司的比较资深的程序员写出来的。
接口测试流程
一)接口的功能测试
首先要保证接口是正确的。
二)测试接口的数据
传递一些特殊的数据,保证接口没有问题。
三)自动化测试脚本的编辑
什么叫自动化测试呢?在进行所谓的接口测试的过程当中,你会无数次的在网页或者手机的app上来点点点、输入一些文字等等来进行操作,这种操作人为是可以做的,你可以自己点啊或者自己在搜索栏里面输入内容之类的。虽说是可以,但你不觉得这种操作有点浪费时间,或者说有点浪费人力吗?
在后续的学习过程中,我们会学习如何编辑自动化测试脚本,当然了,这里毕竟只是入门,不会涉及到那么深。而且用下面这款叫做Apache JMeter的软件就能实现自动化的脚本编辑了。
也就是说用了这款工具,咱们就是一通点点点,一通写写写,写好了测试的流程步骤,即第一步测什么,第二步测什么,第三步测什么,把这些东西都用这个软件写好之后,接下来咱们要做的事情就是点击这个软件中的小绿按钮,它就自动帮我们把测试做完了。
也就是说刚刚那些保证正确性的东西,你先搞定,然后再把这些繁琐的、需要步骤的测试过程给到咱们的工具,让它来帮助我们进行操作,这样就可以解放人力了。
四)接口的性能、压力测试
举个例子,拿咱们在淘宝/京东买东西来说,在双十一或者双十二这一天,淘宝/京东那边是会搞卖东西的活动的,在双十一或者双十二这一天的12:00一过的那一刹那,好几百亿的订单就下了。如果说淘宝/京东的这个服务器(提供服务的那台机器)的性能不够,抗压能力不够,那么在双十一或者双十二这一天的12:00一过,一瞬间,机器压力扛不住,服务器崩溃了,服务器宕机了,用户还能买东西吗?显然不能,对淘宝/京东来说,损失就会超级超级巨大!!!
你想啊,双十一或者双十二这一天的12:00一过,淘宝/京东一下子好几百亿的订单是不是都已经下完了啊,这么大的数据量,如果它们的接口的性能、压力扛不住,是不是也不可以啊!
一般来说,测试接口的性能和压力,都是那些大中型企业在考虑那些跟秒杀有关的、或者说跟那些高强度有关的场景时,才会用到接口的性能、压力测试!
网络编程基本概念
对一个Java程序员来说,想必下面这些专有名词你都听说过,如果听都没听过,是不是有点太过分了!
再来看一下下面这张图,现在你对网络编程中的基本概念是不是有一个大概的认识了,当然了,对于笔者(还算是对Java后端开发有一点浅浅的认识)来说,这再稀松平常不过了。
HTTP协议
概念
协议指的是计算机通信网络中两台计算机之间进行通信所必须共同遵守的规则或规定。而HTTP协就是超文本传输协议,它是一种规定了浏览器和服务器之间通信的规则。
URL(统一资源定位符)
概念
互联网上资源的地址、位置。每一个资源都有一个唯一的URL。
格式
其格式形如协议://主机地址/路径
,例如,http://localhost:8080/item/list
。
GET/POST请求
GET请求
提交的数据显示在浏览器地址栏中,其特点是不安全、提交的数据量有限制,因此不重要的数据就会使用GET请求,就像下图所示的这样。
POST请求
隐式提交数据,其特点是更安全、没有数据量大小的限制,因此重要数据一般就会使用POST请求,就像下图所示的这样。
数据传递的格式
请求中提交的数据进行传递时,一般有两种传递格式,一种是键值对格式,一种是json数据格式。
键值对
键值对格式形如?keyword=电脑&enc=utf-8
。
json数据
json数据格式形如下面这种:
{
"属性名1":"属性值",
"属性名2":"属性值",
"属性名3":"属性值"
}
HTTP协议之常见响应状态码
状态码由三位数字组成,第一位数字定义了响应类型,而且有5种可能取值,分别如下。
restful风格
概念
restful风格是啥呢?它其实就是一个资源定位及资源操作的风格,不是标准也不是协议,只是一种风格,是对http协议的诠释。
现在咱们一般都会按照restful风格来编写易读、易懂的api文档,目的是让前端、后端、测试三方在工作的时候有据可循,提升开发和测试的效率(非强制要求,软要求)。
增删改查四大功能的语法风格
那么按照restful这种风格编写出的增删改查四大功能的语法又是怎么的样的呢?