API网关是什么鬼

API网关

API网关就是字面上的意义。网关最初是用在网络上面的一个名词,类似网络关卡的含义。比如你家的路由器就属于一个网络关卡,你的手机,电脑,音响等各种连接该路由器的设备,都需要通过路由器发送网络请求。路由器扮演了一个网络出口的角色。
API网关就是各种api的一个出口。如图:

为啥要弄个API网关这玩意?

高大上的名词就不说了

  • 因为api越来越多,不方便控制。比如每个服务都有一个域名,那么有一百个服务,就需要有一百种域名的api。如果一个产品用到了其中的50个服务,那么就需要访问50种域名的api,不美。因此用api网关,统一配置。只配置一个域名就可以解决所有问题。美美哒。
  • api网关处于中间层,可以控制请求次数,请求频率,负载均衡等等。一方面可以防止恶意攻击。一方面可以将api出售,作为收费的依据(比如现在聚合数据、百度API Store)等等。
  • 其它的暂时没有想到,不过这么多的好处,也值得用了。还是那句话,小产品就不必这么折腾了。

API网关推荐

1
2
3
4
5
Kong是在客户端和(微)服务间转发API通信的API网关,通过插件扩展功能。Kong有两个主要组件:

Kong Server :基于nginx的服务器,用来接收API请求。
Apache Cassandra :用来存储操作数据。
你可以通过增加更多Kong Server机器对Kong服务进行水平扩展,通过前置的负载均衡器向这些机器分发请求。根据文档描述,两个Cassandra节点就足以支撑绝大多数情况,但如果网络非常拥挤,可以考虑适当增加更多节点。

Microgateway(推荐使用)

1
2
3
BM 最近宣布开源他们的 API 微网关(Microgateway)。这意味着任何一个开发人员和组织现在都可以无偿在他们的项目里使用这个软件。

API 网关是处于 API 服务和消费者应用程序之间的一个软件层。这个层的作用是为 API 提供各种常见的服务,比如安全、速率限定,以及变更管理工具。IBM 的微网关采用 Node.js 开发,并采用了 Swagger 2.0 规范。这一软件的开源震惊了开发社区,因为 IBM、微软、谷歌等公司的 API 网关都不是免费的。IBM 的微网关与 IBM 的 DataPower Gateway 是不一样的,后者是另一个企业解决方案,更加侧重安全。

自己开发api网关

不推荐,耗时耗力。
谈谈 API 网关
使用API网关构建微服务
也可以用阿里的阿里云api网关

免费的API接口

程序员可以用来做很多有意思的产品。
结合微信公众号,小程序等入口。
免费实用的API接口