1、Mock模拟接口
Mock(模拟)接口就是假的接口,它不去调用真实的后端服务,而是用事先准备好的数据来假装接口返回了结果。
真实接口:真的去调用固有系统、数据库、第三方 API,返回实时数据。
Mock接口:不调用真实系统,直接返回一份模拟数据(假数据)。
在本地费控中,有如下语句,用配置开关控制的:
useMockApi = true
意思是使用Mock接口。
Mock接口的常见用途:
开发阶段没法连真实系统:比如固有系统是生产环境,开发环境不能直接访问。Mock就能在本地跑起来,不依赖外部网络。
真实接口开发还没完成:前端需要先调试 UI,后端还在写代码,这时候用Mock数据顶上。
避免风险和成本:真实接口调用可能会改动生产数据,或者产生额外费用(OCR调用是按次收费的,虽然在mock里调用云API也会收费)。用Mock同样可以实现安全测试。
2、Mock接口在Java后端的实现方式
配置文件和实际调用是分离的,例如url.properties里有两类 URL:
###固有系统### → 真实系统接口地址
###模拟接口### → 模拟接口地址
useMockApi = true
只是告诉系统“本次请求要用Mock数据”,并不意味着代码里直接写了模拟 URL。也就是说,模拟接口的URL并不一定会在Java代码里直接出现。
useMockApi = true后,调用路径会被拦截或返回模拟数据,所以即使URL指向真实接口,也不会真的去请求外部系统。
同前端的配合
Vue请求的地址是后端Java暴露的API,例如 /api/v1/progress。
后端代码根据 useMockApi:
true → 返回事先写好的假数据(Mock 数据)。
false → 转发请求到固有系统接口,拿真实数据。
对Vue来说,请求的URL没变,数据的真假是后端控制的。
优点:前端代码不需要改,切换真实/模拟只改后端配置。
缺点:后端要写 Mock 数据的逻辑。
3、API 接口地址(URL)再复习
API,即Application Programming Interface,指应用程序编程接口。在Web系统里,API一般就是一个可以通过HTTP请求访问的服务端功能入口。
(前略)192.168.1.1:8080/api/...
以上这种格式是URL,也就是访问这个功能的地址。
具体细节:
http:// → 协议(告诉浏览器/客户端用HTTP协议访问)
192.168....... → 服务器的IP地址(内网地址)
:8080 → 端口号(Web服务监听的位置,8080是常见的Java/Spring Boot默认端口)
/api → 表示这是对外提供的API接口路径(通常后端会把所有API路径放到/api下面)
/v1 → API版本号(v1表示第一版,将来可能会有v2、v3)
/progress/... → 具体的功能路径,比如获取进度、任务状态等
用途
这种API接口地址,不是给人直接在浏览器访问网页的,而是给程序之间交互用的。比如:
前端页面(Vue、React、JS)调用这个地址,获取JSON数据来更新页面。
另一个系统(比如你的“费控系统”)调用这个地址,和“固有系统”交换数据。
请求方式常见的有:
GET → 获取数据(如进度、列表、详情)
POST → 提交数据(如上传OCR结果、新增记录)
PUT → 更新数据
DELETE → 删除数据
API 接口的返回内容
绝大多数 API 接口会返回 JSON 格式的数据,例如:
{
"status": "success",
"data": {
"progress": 75,
"message": "任务进行中"
}
}
这些数据不会直接展示成网页,而是被调用它的程序解析、处理,再展示给用户。
周总结:
1、完成了阿里云OCR的适配器模式接入——在请求代码的main方法上写另外一个兼容方法,将之引入到OCR识别过程中的返回报文部分,从而达到替换OCR并保留原字段的目的。
2、补充了测试报告,加入了阿里云OCR相关内容。
3、熟悉了费控系统Mock接口和固有系统接口的关联,明确本地费控不影响生产环境的实现逻辑。