前后端分离
优势
- 职责分离
- 代码分离
- 部署分离
- 方便演进
- 提高效率
劣势
- 前后端分离并没有增加很多的代码复杂度,增加的其实是工程、测试、沟通、协作等等成本
API 的管理
- 普通式管理:配置文件、口述等等
- 互联网式管理:YAPI,Swagger 等等
安全管理
- Token 校验
- 权限校验
- 数据校验:前后端数据校验
Mock
- 普通的 Mock Server
- DSL Mock Server
- 编程型的 Mock Server
保障服务:契约测试对 API 服务进行契约测试
BFF VS API Gateway
- 可应对多端
- 聚合后端服务
- 第三方系统代理
- 遗留系统迁移
API Gateway: 只有单个入口,聚合了所有请求,且没有业务逻辑处理
BFF:有个多 BFF,一般针对于不同的 APP,且可以包含逻辑业务,可以看做一个高级 API Gateway
GraphQL VS BFF
- 按需获取
- 代码即文档
- 易于调试和测试
- 强类型 API 检查
- 易于版本化
模式
- GraphQL —> API Gateway —> 后端服务
- GraphQL —> Rest RPC
- GraphQL —> GraphQL Server
DevTools —> Console —> Live expression 可以编辑 Javascript 表达式