Skip to content

前后端分离

优势

  1. 职责分离
  2. 代码分离
  3. 部署分离
  4. 方便演进
  5. 提高效率

劣势

  1. 前后端分离并没有增加很多的代码复杂度,增加的其实是工程、测试、沟通、协作等等成本

API 的管理

  1. 普通式管理:配置文件、口述等等
  2. 互联网式管理:YAPI,Swagger 等等

安全管理

  1. Token 校验
  2. 权限校验
  3. 数据校验:前后端数据校验

Mock

  1. 普通的 Mock Server
  2. DSL Mock Server
  3. 编程型的 Mock Server

保障服务:契约测试对 API 服务进行契约测试

BFF VS API Gateway

  1. 可应对多端
  2. 聚合后端服务
  3. 第三方系统代理
  4. 遗留系统迁移

API Gateway: 只有单个入口,聚合了所有请求,且没有业务逻辑处理

BFF:有个多 BFF,一般针对于不同的 APP,且可以包含逻辑业务,可以看做一个高级 API Gateway

GraphQL VS BFF

  1. 按需获取
  2. 代码即文档
  3. 易于调试和测试
  4. 强类型 API 检查
  5. 易于版本化

模式

  1. GraphQL —> API Gateway —> 后端服务
  2. GraphQL —> Rest RPC
  3. GraphQL —> GraphQL Server

DevTools —> Console —> Live expression 可以编辑 Javascript 表达式