Restful风格接口开发
目录
Restful
Apifox
介绍
端口号8080怎么来的?
为什么要使用Apifox?
Restful
如果请求方式是Post,那我就知道了要执行新增操作,要新增一个用户
如果请求方式是Put,那就代表我要修改用户
具体要对这些资源进行什么样的操作,传统的Url通过动词来描述,但Restful风格的Url通过请求方式来描述,由于请求方式是固定的,get是查询,Delete是删除,Post是新增,Put是修改,分别对应于增删改查的四项操作
所以Restful风格的url中有两大特点
第一大特点就是通过Url来定位要操作的资源
/user/1那我就知道我要操作的是一号用户的信息,具体对这个用户进行什么样的操作由请求方式决定
所以Restful风格的url第二大特点就是通过HTTP动词来描述操作,而这块说的HTTP动词指的就是请求方式,通过请求方式就知道到底是对增删改查进行的哪项操作
-
REST是风格,是约定方式,约定不是规定,可以打破
-
描述模块的功能通常使用复数,也就是加s的格式来描述,表示此类资源,而非单个资源。如:users、emps、books…
Apifox
将来前端和后端都是并行开发的,假设我们后端工程师已经将对应的功能接口都已经开发完毕了,我如何对服务器端的功能接口进行测试呢
在前端开发过程中,如果服务器端还没有开发好,那前端如何来获取数据来测试页面渲染展示呢?
其实要解决这两个问题,我们只需要借助一个工具就可以了
介绍
API三大功能
第一大功能,可以管理我们项目中的接口文档
第二大功能,也可以基于Apifox来测试我们服务器端所开发的功能接口,也就是接口的请求测试
第三大功能,还可以对前端去提供对应的Mock服务,Mock服务就是为前端提供的模拟的url地址,你访问这个模拟的url地址,我就会对你返回对应的测试数据来供前端测试调试使用的
安装完Apifox之后扫码登录,在主窗口新建项目,这样就新建了一个项目
点击快捷请求,之后要输入一个url地址,这个url就是用来指定你要访问哪个功能接口,在前面选择对应的请求方式
输入http://localhost:8080/hello?name=Tom
端口号8080怎么来的?
后端服务(例如 Spring Boot 应用)在启动时会监听一个特定的端口,用于接收 HTTP 请求
端口号 8080
是后端服务配置中指定的,前端或工具(如 Apifox)需要根据后端的实际运行端口来发送请求
在许多 Java Web 框架(如 Spring Boot)中,默认的 HTTP 端口号是 8080
如果开发者没有显式地配置端口号,框架会使用默认值 8080
开发者可以通过配置文件(如 application.properties
或 application.yml
)手动设置端口号
通过 application.yml
配置端口
server:port: 8080
如果将 server.port
设置为其他值(如 9090
),则后端服务会在该端口上运行,URL 也会变成:
http://localhost:9090/hello?name=Tom
Body代表的是请求体中返回的内容
Header展示的是响应头的信息
实际请求中展示了这次请求的相关信息,请求的url地址,请求的方式,以及传递的请求头
为什么要使用Apifox?
由于浏览器地址发起的请求,都是GET方式的请求,如果我们需要发起POST,PUT,DELETE方式的请求,就需要借助于这类工具
接口开发
我们接下来在开发每一个功能的时候,首先要先打开页面原型去明确需求,然后再去接口文档去进行功能接口的开发,功能开发好了再进行测试,再进行联调
在接口文档中最基本的三项信息
第一个就是这个接口的基本描述
首先这块有个请求路径,这代表的是将来在请求这个接口的时候,前端的请求路径是什么
当然前面并没有写协议,IP地址,端口号那部分,主要写的是资源的访问路径,资源的访问路径为/depts
由于是查询方式,所以请求方式是GET
下面就有这块接口的描述,是用来查询部分列表数据的
第二个就是请求参数的信息
那由于是查询全部,并没有请求参数,这里可以看到请求参数这里是无,也就是说你在访问这个路径的时候是不需要携带任何参数的
第三个就是相应参数的信息
响应格式是:application/json
就代表这是一个json格式的数据,最终需要给前端响应json格式的数据
下面有响应数据的样例
那响应回去的数据就是一个标准的统一响应结果,第一项code就代表是否操作成功,那为1就代表操作成功,为0就代表操作失败
接下来第二项msg就代表提示信息,如果成功的话,那我们最终返回的就是一个默认的succes,如果失败因为什么原因失败,我们需要给前端响应回去
第三项信息是data,data就代表我们要给前端返回的数据,如果是增删改通常来说我们是不需要给前端返回数据的,data返回Null就可以了,如果是查询,查询是需要返回数据的,在data里面就是查询返回的结果,由于查询的是全部的部门,那在Json格式的数据中,如果是一个数组或者List集合,那么这个时候外层是一个中括号,这代表的是一个json格式的数组,里面是一层一层的大括号,大括号代表的是一个一个的对象,里面封装的就是一个一个部门的信息