1、饿了么API框架实践 API Everything 什么是APIEverything APIEverything将SOA服务接口适配给外部各端进行访问 Web/APPFirewallAPIEverythingSOA1SOAnHTTPSOA call 问题怎么解决?WebAPI层写业务逻辑,甚至直接访问数据库 WebAPI的风格各异,res4ul的,JSON-RPC的,API 设计规范?API文档过时,不能反映代码情况 前后端开发不同步,前端等后端 产品技术方案原则 稳定性,性能,高可用,容错性 DevOps 中心 更“懒”代码即文档 用户体验 功能需求 生命周期 API开发 文档 Mock A
2、PI管理 访问权限 限流,灰度 API网关服务 鉴权认证 协议转换 API运维 监控管理 部署扩容 APIEverything 产品规划 APIPortal API 文档 APIMock 访问权限 限流&灰度 API 拼接剪裁 StargateCluster 鉴权认证 协议转换 监控告警 部署扩容 API 拼接剪裁 MockServer MockCase管理 自动化生成MockCase MockAPI MockSOA APIRobot API 回归测试 API 测试数据自动生成 API 测试脚本 API 代码覆盖率 系统交互?,?,?,?I?C?I?C?,?A?IA?API?query str
3、ing?MockSOAHTTPSOA?HTTP?API?API?API?提高效率 AutomaFon 代码注释和标注写完,提交代码,就可以看到API文档 API文档生成自动化 通过标注将SOA接口自动映射成HTTP接口,并且自动生成代码 API代码自动生成 在SOA服务部署的时候,自动部署对应的WebAPI API部署自动化 根据APIModel自动生成Mock数据,支持函数 APIMock自动生成 每个应用接入,自动进行全链路监控和告警 API 自动监控告警 StargateCluster技术架构?MySQL?E?A?E?N?E?LO?Cbase.stargate_ops_webapibas
4、e.stargate_ops_webbase.stargate_ops?L?L?A?A?A?L?stargate?base.s?MaxQ?StargateCluster 基于Docker部署?foo.soaNginx(1 n)location /foo proxy_pass http:/nvg_stargate_foo_pool;upstream nvg_stargate_foo_pool server 10.2.18.194:8080;server 10.2.18.190:8080;api-xxx.ele.meDocker 1Docker nbar.soaF5foo-api.jarDocke
5、r 1Docker nbar-api.jar location /bar proxy_pass http:/nvg_stargate_bar_pool;upstream nvg_stargate_bar_pool server 10.2.16.194:8080;server 10.2.16.190:8080;部署信息 APIPortal 自动化文档 APIPortal API讨论 Swagger文档 MockServer 流程 MockServer 自动解析 自动生成MockCase 前后端开发分离?Stop?API?Start No.开发开发人员 人员 使用模块 使用模块 工作内容 工作内容
6、 预计预计工时 工时 实际实际工时 工时 节省节省工时 工时 节省节省占比 占比 1 前端 Stargatecluster,APIportal,MockServer 使用APIPortal 阅读API接口,使用MockServer完成前端页面所有开发 5天 3天 2 天 40%2 后端 Stargatecluster,APIportal,MockServer 使用APIPortal,通过Swagger文档查看后端API调用情况。通过MockserverMock外部SOA依赖。5天 3天 2天 40%3 后端 Sta