用 Tornado 做了一个 JSON API Gateway

2016-02-23 19:50:45 +08:00
 restran
API 是连接 App 和服务器数据库的桥梁。在 App 和各种 API 多了之后,对这些 API 的管理和保护就带来了一系列的问题。比如:

1. 如何保护 API 不被非法访问,只能由 App 正常发起请求?
2. 如何控制不同 App 对多种多样 API 的访问权限?
3. API 的访问情况怎样,日志如何查看?

于是,就有了 API Gateway 这个项目

项目地址: https://github.com/restran/api-gateway

目前已经完成了 api-gateway 的服务端部分, Web 控制台还剩访问日志和访问统计查看。计划开发 Android 和 iOS 的 API Client 。

在设计上有什么问题,还请大家多提意见。
8480 次点击
所在节点    Python
21 条回复
rim99
2016-02-23 20:05:41 +08:00
看上去蛮有意思,已关注。以后拿来学习
Ge4Los
2016-02-23 22:37:54 +08:00
挺有意思的项目,先关注了
Comdex
2016-02-24 00:29:10 +08:00
不明白具体用处?
shajiquan
2016-02-24 01:18:18 +08:00
已 star
ewBuyVmLZMZE
2016-02-24 04:55:42 +08:00
看了下,协议不是很规范,请参考项目 kong 。有点轮子的嫌疑。
ewBuyVmLZMZE
2016-02-24 04:56:47 +08:00
latyas
2016-02-24 07:25:31 +08:00
不错 stared
restran
2016-02-24 08:43:45 +08:00
@syhily 谢谢。为了管理我们很多 App 的 API ,我们内部有一个 api-gateway ,但是还比较粗糙,这是我重写的版本,在还没正式完成前,就来发帖,也是为了及早发现设计上的错误和不足。
diyisoft
2016-02-24 08:49:11 +08:00
期待这样的 api-gateway
knktc
2016-02-24 08:50:10 +08:00
已 star ,最近也想做类似的东西,参考一下。
之前是想尝试用 falcon 啥来开发,但是一直也没有开始工作~
restran
2016-02-24 08:50:53 +08:00
@Comdex 可以看看 kong 的文档 https://getkong.org/
restran
2016-02-24 08:52:59 +08:00
@diyisoft 我承认是造了个轮子,由于之前在用的 api-gateway 跟业务有比较多的耦合,而且比较粗糙,所以我才重写了一个。现在你可以先试试 kong https://getkong.org/
restran
2016-02-24 08:53:30 +08:00
@knktc 欢迎交流学习
yishenggudou
2016-02-24 09:36:50 +08:00
也有类似的思路 做了一半
diyisoft
2016-02-24 11:12:04 +08:00
@restran 没有说你造轮子,期待你的 api-gateway ,已经 star
viamcc
2016-02-24 11:28:33 +08:00
验证 Referer 和绑定对方 IP 来保证不被非法访问
zeuss
2016-02-24 11:40:44 +08:00
不错,已 star ,持续关注。
restran
2016-02-24 12:17:23 +08:00
@viamcc 因为 Referrer 可以被构造,只能做简单的防盗链,如果是 App 上的 API ,面向的用户 IP 不可预期,绑定 IP 就不太合适。所以我采用了 HMAC 签名来鉴权。
viamcc
2016-02-25 09:45:59 +08:00
@restran 我理解的是 B2B 方式,所以绑定对方服务器的出口 IP 即可,无关乎用户
restran
2016-02-25 12:18:42 +08:00
@viamcc 这种情况下可行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/258559

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX