Arduino 与开放硬件 寇天友. Outline Arduino 平台介绍 Arduino prototype Arduino 创业 展望物联网 开放硬件与开源软件.
开放平台的 Open API 设计
-
Upload
patrick-barrett -
Category
Documents
-
view
295 -
download
2
description
Transcript of 开放平台的 Open API 设计
![Page 1: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/1.jpg)
开放平台的 Open API 设计
朱念洋2011-10-06
![Page 2: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/2.jpg)
Open API 是什么
![Page 3: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/3.jpg)
数据 服务 应用
平台
OpenAPI
![Page 4: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/4.jpg)
存储 API
安全 API
监控 API好友动态
好友关系
个人资料
支持类
业务类
![Page 5: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/5.jpg)
易用性可用性安全性
![Page 6: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/6.jpg)
易用性
![Page 7: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/7.jpg)
开发者的抱怨• 加密算法从没有听过!• 从其他平台迁移过来好难啊!• 说明文档看不懂!
![Page 8: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/8.jpg)
解决• 尽量业界统一( URL 、参数、返
回、加密)• 完善的 wiki• 开发者论坛• 专业客服
![Page 9: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/9.jpg)
改
![Page 10: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/10.jpg)
让你解脱!
![Page 11: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/11.jpg)
全部一致• 同样的 URL !• 同样的参数、返回格式!• 同样的调用地址!
![Page 12: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/12.jpg)
• 获取个人信息 : /user/info• 获取用户签名 : /user/emotion• 获取好友列表 : /relation/friends• 是否好友 : /relation/is_friend• …
![Page 13: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/13.jpg)
一点接入四平台全部上线
应用无需改动一行代码
![Page 14: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/14.jpg)
HOW?
![Page 15: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/15.jpg)
![Page 16: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/16.jpg)
可用性
![Page 17: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/17.jpg)
服务器繁忙
服务器繁忙
服务器繁忙
服务器繁忙服务器繁忙
服务器繁忙服务器繁忙
![Page 18: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/18.jpg)
某机房异常!
![Page 19: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/19.jpg)
怎么解决• DNS 变更?• 应用自己变更调用 IP ?
![Page 20: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/20.jpg)
真正解决
内网 DNS
![Page 21: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/21.jpg)
内网 DNS• 即时生效• 应用无感知• 就近访问• 安全性高
![Page 22: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/22.jpg)
应用 B OpenAPI 机房 B
OpenAPI 机房 A应用 A
应用 B OpenAPI 机房 B
内网DNS
![Page 23: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/23.jpg)
![Page 24: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/24.jpg)
某 server 异常
![Page 25: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/25.jpg)
单点
![Page 26: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/26.jpg)
主调 server
被调 server3
主调 server
被调 server1 被调 server2 被调 server3
优化前
![Page 27: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/27.jpg)
被调 server3
主调 server
被调 server1 被调 server2 被调 server3
异步化 动态 IP分配
优化后
![Page 28: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/28.jpg)
总结• 无单点• 异步化• 负载均衡,过载保护• 容灾
![Page 29: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/29.jpg)
还能不能再优化?
![Page 30: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/30.jpg)
柔性服务!
![Page 31: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/31.jpg)
![Page 32: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/32.jpg)
在能容忍的最长时间内将最重要的事做完
![Page 33: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/33.jpg)
1
2
3
4
重要
次要
![Page 34: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/34.jpg)
高枕无忧?
![Page 35: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/35.jpg)
最长超时设为多少?
![Page 36: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/36.jpg)
EMA 算法!
![Page 37: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/37.jpg)
0
100
200
300
400
500
600
Tmax
Tavg
Thwm
EMA
Tdto
响应时间下限
平均相应时间
响应时间上限
动态超时时间
最大弹性时间
![Page 38: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/38.jpg)
还有什么• 自动化测试• 告警策略
![Page 39: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/39.jpg)
全面的告警• OpenAPI 调用访问量、失败率• 应用调用 OpenAPI 的访问量、失败率• 各级 server 之间调用的失败率告警• CGI 内部模块调用告警• 自动化测试告警• 基础服务告警
![Page 40: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/40.jpg)
后台架构图
![Page 41: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/41.jpg)
![Page 42: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/42.jpg)
安全性
![Page 43: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/43.jpg)
平台登录 应用登录?
![Page 44: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/44.jpg)
平台登录
应用 1 登录 应用 2 登录
![Page 45: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/45.jpg)
模拟用户登录用户应用数据泄漏
![Page 46: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/46.jpg)
平台登录 + 应用 ID
应用登录( openid+openkey )
![Page 47: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/47.jpg)
平台登录
应用 1 登录 应用 2 登录
![Page 48: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/48.jpg)
详细鉴权• 应用授权• 频率限制• 用户授权• 用户登录态• 安全限制
![Page 49: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/49.jpg)
![Page 50: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/50.jpg)
应用
API
用户
应用 IP
用户 IP
安全审计纬度
![Page 51: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/51.jpg)
• 应用健康度分析• 反外挂
协助应用
![Page 52: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/52.jpg)
前台 OpenAPI
![Page 53: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/53.jpg)
• 好友邀请• 跳转好友首页• 支付• ……
![Page 54: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/54.jpg)
应用如何加载平台的js ?
![Page 55: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/55.jpg)
直接加载 js ?• 长 Cache ,不改变文件名无法升
级• 改变文件名,需要第三方变更
![Page 56: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/56.jpg)
![Page 57: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/57.jpg)
谢谢大家!Q&A
![Page 58: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/58.jpg)
附
![Page 59: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/59.jpg)
Oauth 与 OpenKey
![Page 60: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/60.jpg)
应用 平台
请求授权 用户授权
请求资源 分配资源
![Page 61: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/61.jpg)
业务特性决定选择• 用户点击应用列表进入• 用户在线时间较短• 应用嵌套在平台 iframe中
![Page 62: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/62.jpg)
OpenKey特点• 默认 30 分钟过期,但可续期• 有最长续期时间• 用户授权后只跳转腾讯域名 URL
![Page 63: 开放平台的 Open API 设计](https://reader034.fdocument.pub/reader034/viewer/2022050618/56813113550346895d9761b1/html5/thumbnails/63.jpg)
OpenKey 更适合• 与平台登录无缝结合• 应用编码更简单,只关心业务逻辑