【分享】什么是API网关?大公司为什么都有API网关?
一、API网关的用处
API网关我的分析中会用到以下三种场景。
二、API网关在企业整体架构中的地位
一个企业随着信息系统复杂度的提高,必然出现外部合作伙伴应用、企业自身的公网应用、企业内网应用等,在架构上应该将这三种应用区别开,三种应用的安排级别、访问方式也不一样。
因此在我的设计中将这三种应用分别用不同的网关进行API管理,分别是:API网关(OpenAPI合伙伙伴应用)、API网关(内部应用)、API网关(内部公网应用)。
三、企业中在如何应用API网关
1、对于OpenAPI使用的API网关来说,一般合作伙伴要以应用的形式接入到OpenAPI平台,合作伙伴需要到 OpenAPI平台申请应用。
因此在OpenAPI网关之外,需要有一个面向合作伙伴的使用的平台用于合作伙伴,这就要求OpenAPI网关需要提供API给这个用户平台进行访问。
如下架构:
当然如果是在简单的场景下,可能并不需要提供一个面向合作伙伴的门户,只需要由公司的运营人员直接添加合作伙伴应用id/密钥等,这种情况下也就不需要合作伙伴门户子系统。
2、对于内网的API网关,在起到的作用上来说可以认为是微服务网关,也可以认为是内网的API服务治理平台。
当企业将所有的应用使用微服务的架构管理起来,那么API网关就起到了微服务网关的作用。
而当企业只是将系统与系统之间的调用使用rest api的方式进行访问时使用API网关对调用进行管理,那么API网关起到的就是API服务治理的作用。
架构参考如下:
3、对于公司内部公网应用(如APP、公司的网站),如果管理上比较细致,在架构上是可能由独立的API网关来处理这部分内部公网应用,如果想比较简单的处理,也可以是使用面向合作伙伴的API网关。
如果使用独立的API网关,有以下的好处:
• 面向合作伙伴和面向公司主体业务的优先级不一样,不同的API网关可以做到业务影响的隔离。
• 内部API使用的管理流程和面向合作伙伴的管理流程可能不一样。
• 内部的API在功能扩展等方面的需求一般会大于OpenAPI对于功能的要求。
基于以上的分析,如果公司有能力,那么还是建议分开使用合作伙伴OPEN API网关和内部公网应用网关。
四、API网关解决方案
私有云解决方案如下:
• Kong是基于Nginx+Lua进行二次开发的方案
https://konghq.com/
• Eolinker和Kong比较接近,但是因为是国内公司开发的,后续的技术支持和培训比较友好。
https://www.eolinker.com
• Netflix Zuul,zuul是spring cloud的一个推荐组件, https://github.com/Netflix/zuul
• orange,这个开源程序也是国人开发的,不过这个是个人开发不是公司。
http://orange.sumory.com/
公有云解决方案:
• Amazon API Gateway, https://aws.amazon.com/cn/api-gateway/
• 阿里云API网关, https://www.aliyun.com/product/apigateway/
• 腾讯云API网关, https://cloud.tencent.com/product/apigateway
自开发解决方案:
• 基于Nginx+Lua+ OpenResty的方案,可以看到Eolinker,Kong,orange都是基于这个方案。
• 基于Netty、非阻塞IO模型。通过网上搜索可以看到国内的宜人贷等一些公司是基于这种方案。
• 基于Node.js的方案。这种方案是应用了Node.js天生的非阻塞的特性。
• 基于java Servlet的方案。zuul基于的就是这种方案,这种方案的效率不高,这也是zuul总是被诟病的原因。
五、企业怎么选择API网关
现在的亚马逊、阿里、腾讯云都在提供基础公有云的API网关,当然这些网关的基础功能肯定是没有问题,但是二次开发,扩展功能、监控功能可能就不能满足部分用户的定制需求了。
另外很多企业因为自身信息安全的原因,不能使用外网公有网的API网关服务,这样就只有选择私有云的方案了。
在需求上如果基于公有云的API网关只能做到由内部人员为外网人员申请应用,无法做到定制的合作伙伴门户,这也不适合于部分企业的需求。
如果作为微服务网关,大多数情况下是希望网关服务器和服务提供方服务器是要在内网的,在这里情况下也只有私有云的API网关才能满足需求。
综合上面的分析,基础公有云的API网关只有满足一部分简单客户的需求,对于很多企业来说私有云的API网关才是正确的选择。
API是什么,一般网站设置API起什么作用?
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。windows API Windows API是一套用来控制Windows的各个部件的外观和行为的一套预先定义的Windows函数。用户的每个动作都会引发...
视频接口API是什么?
在探索视频世界的技术秘籍时,免费的视频API接口成为了不可或缺的工具。API接口,就像一把钥匙,能打开数据的大门,帮助我们快速获取和解析视频内容。今天,我们将深入解析这一关键概念,并分享一款强大的视频API接口采集器,它能自动抓取视频信息,包括视频本身、简介和自定义变量,为你的项目提供强大支持。
api接口有哪几种分类及功能
开放是目前的发展趋势,越来越多的产品走向开放。目前的网站不能靠限制用户离开来留住用户,开放的架构反而更增加了用户的粘性。在Web 2.0的浪潮到来之前,开放的API 甚至源代码主要体现在桌面应用上,而现在越来越多的Web应用面向开发者开放了API。具备分享、标准、去中心化、开放、模块化的Web 2.0...
api是什么意思星露谷
API是应用程序接口的缩写,指的是不同软件之间进行交互或者通信时所使用的一种通用语言。在星露谷中,API则指的是游戏中的各种功能和数据接口,如MOD创建和数据查询等等。很多玩家也利用API来开发并分享自己的MOD,从而扩展游戏的玩法和体验。通过API的使用,星露谷不仅开放了自己的功能和数据接口,还为玩家...
网易我的世界api我的世界api是什么意思我的世界api怎么安装
11、4.打开启动器,这时,游戏版本多出来一个,用mclauncher启动器选择多出来的启动。12、5.游戏界面多出来一个mods文件夹,安装成功。13、注:整合包不必安装forge API,因为整合包作者已经把API安装好了,无须你再安装一遍。14、纯手打,望采纳。本文到此分享完毕,希望对大家有所帮助。
电脑培训分享API网关设置基础知识
如果大家了解网络构成的话,对于网关应该就不会陌生了,今天我们就一起来了解一下,API网关的一些基础知识,希望对大家以后的服务器开发工作有所帮助,下面就开始今天的主要内容吧。一、API网关产生背景 在微服务的架构中,一个大的应用会被拆分成多个小的单一的服务提供出来,这些小的服务有自己的处理,有...
开放API是什么?能举个例子讲解一下么?谢各位大神!
API是软件接口,就是比如说很多网页有分享到微信,微博,等等,这就是开放API了。就好像手机的USB接口,可以接其他的设备,只不过API是指软件
什么是API密钥
API Key是一个长字符串,通常包含在URL或者header里面,主要作用于api调用员的验证,api key也可能和注册的特定应用程序关联。api可能同时提供公钥和密钥,公钥包含在请求里面,密钥则是像密码,仅在服务器到服务器的连接时使用到。api key使用的注意事项 1、不要随意分享、赠与API Key,防止出现安全漏洞...
h5分享文件到第三方
h5分享文件到第三方有分享链接、社交媒体分享按钮、分享API等方法。1、分享链接:可以在H5页面中提供一个分享链接,用户点击该链接后可以选择将文件分享到第三方平台。这个链接可以是文件的直接下载链接或者通过云存储服务生成的分享链接。2、社交媒体分享按钮:在H5页面中嵌入社交媒体分享按钮,例如微信、微博...
Android API 是什么东西?
API(Application Programming Interface)其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用程序的命令(动作)。其实早在 DOS 时代就有 API 的概念,只不过那个时候的 API 是以中断调用的形式(INT 21h)提供的,在 DOS 下跑的应用程序都直接或间接的...
禽淑牛黄: API(Application Programming Interface,应用程序编程接口) 简单来说,就是其他人开发出来一块程序,你想用,他会告诉你调用哪个函数,给这个函数传什么参数,然后又会返回给你一个什么样的结果,你不需要知道他函数里面到底是怎么做的,只要清楚这样调用就能实现某种功能就可以了.比如别人已经做好了一块几何处理程序,你想拿来算圆的面积,他会告诉你把半径传给他,他就把面积值传给你,至于他里面是怎么算的不用你管.API是这种模式再复杂很多的应用,涉及硬件软件多方面的工作,不过总体来说就是他告诉你怎么用能产生什么结果,你就直接拿来用就行了
秀英区15062904976: 为什么微服务需要API网关 - ?
禽淑牛黄: 1.防止内部关注暴露给外部客户端 API网关将外部公共API与内部微服务API分开,允许添加微服务和更改边界. 其结果是能够在不对外部绑定客户端产生负面影响的情况下重构和适当大小的微服务. 它还通过为您的所有微服务提供单一入口点...
秀英区15062904976: 开放API是什么?能举个例子讲解一下么?谢各位大神! - ?
禽淑牛黄: API是软件接口,就是比如说很多网页有分享到微信,微博,等等,这就是开放API了. 就好像手机的USB接口,可以接其他的设备,只不过API是指软件
秀英区15062904976: 润滑油企业取得api认证,大家知道什么意思吗? ?
禽淑牛黄: 就是美国石油学会的认证,主要针对润滑油行业的
秀英区15062904976: 一个网络应用程序,什么叫做他的开发平台服务接口,以及如何获得该平台传过来的数据信息 - ?
禽淑牛黄: API:应用程序接口(API:Application Program Interface)应用程序接口(API:application programming interface)是一组定义、程序及协议的集合,通过 API接口实现计算机软件之间的相互通信.API 的一个主要功能是提供通用功能集.程序员...
秀英区15062904976: 数据采集接口网关有什么功能? - ?
禽淑牛黄: 其功能与特点如下: 1、安全隔离:当数据采集接口网关为实时数据库系统提供实时数据时,它一般位于自动化控制系统和实时数据库服务器之间,由于数据采集接口网关采用了内置单向数据传输技术,可达到自动化控制系统和实时数据库服务...
秀英区15062904976: java中的API是作什么用的?为什么用过时的API就无法编译?Xlint:deprecation是什么?要重新下载才能使用吗? - ?
禽淑牛黄: 使用应用编程接口(API)构建业务是实现开放式业务结构的关键技术,也是下一代网络区别于传统电信网的主要特点之一.目前,关于下一代网络的开放式业务API标准主要包括:由Parlay组织、3GPP和ETSI SPAN共同制定的Parlay/OSA API...