• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
社会优先于个人
博客园    首页    新随笔    联系   管理    订阅  订阅
4.3 mock服务

mock服务

  • 针对的是前后端协作层面的问题
  • 模拟后端数据,解决对后端接口的依赖
  • 实现前后端分离和并行开发

前后端约定接口的规范

  • 比如请求方法,参数,返回值
  • 后端按照规范,实现接口
  • 前端按照规范使用mock数据,编写前端代码

声明变量作为假数据

  • 直接在业务代码中声明变量,代替接口返回的数据
  • 非常方便,不需要其他任何工具
  • 缺点1: 一旦后端接口完成,我们就要删除和修改很多代码,容易产生错误
  • 缺点2: 无法模拟接口的请求过程和处理异常。比如前端需要接口返回的错误提示

客户端mock

  • 在客户端拦截请求,返回mockjs创建的假数据
  • 可以模拟请求过程和异常处理
  • 客户端mock的代码集中写在了一个js文件,方便维护和删除
  • 缺点:虽然mock的代码在一个单独的文件里面,但是还是在业务代码里面。上线之前必须删除,还有存在一定产品质量隐患。

mock server

  • 假数据和客户端mock,都涉及业务代码的修改
  • 从前端工程化角度,辅助工具应该减少业务人员的精力
  • 在开发阶段,mock server提供与真实接口规范和逻辑一样的本地接口
  • 开发完成后,在构建阶段将mock的地址修改成真实的服务器接口地址
  • 优点:节省开发人员精力,不用修改业务代码
  • mock server能够普及,nodejs居功至伟

异步数据接口

  • mock server最普遍的使用场景是模拟异步数据接口
  • 有两种模式:
    本地模式:使用本地的数据作为请求响应
    代理模式:将异步接口代理到线上的其他接口地址

local 本地模式

  • 是mock server最普遍的实现模式
  • 使用本地api代替真实api地址
  • 使用本地数据作为返回数据
  • 搭建流程
    1 通过路由创建一个可访问的本地域名api代替真实api,比如/login代替http://auth.app.com/login
    2 在路由响应函数内对请求进行校验,比如是否是jsonp请求,然后返回本地数据
    3 前端工程师在业务代码中将真实api修改为本地api

proxy 代理模式

  • 传统的http代理服务器,是客户端和web server之间的中间站,通常是为了节省IP开销,利用缓存
  • mock server的代理模式,没有那么复杂的功能和需求。主要目的是,解决某些接口不支持跨域请求的限制

DefinePlugin和环境变量

  • 测试和生产环境之前,要将地址修改为真实api。手动修改,工作量大容易出错。
  • 测试和生产之前,要构建,可以通过工具,自动修改地址
  • 执行环境:根据目标环境,修改为对应的地址。执行环境的区分,是前端工程化体系最重要的规范之一。
  • DefinePlugin是webpack 的一个插件,定义全局变量
    image

SSR

  • 目前,大部分都是前后端分离,html渲染工作交给了客户端
  • 依赖SEO的还是使用SSR
  • mock server支持的SSR两种场景
    1 页面初始输出的静态内容比较多,使用html模版语言便于模版化开发和维护
    2 依靠服务器端动态数据渲染初始页面
posted on 2022-04-09 15:59  社会优先于个人  阅读(322)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3