api管理工具
现代商业世界是由软件驱动且由API驱动的。 任何应用程序,无论是公共应用程序还是私有应用程序,都需要功能强大且便捷的API才能真正有用。 构建和维护API是一项艰巨的工作,因此,毫无疑问,围绕API管理涌现出了整个软件类。
大多数API管理产品都提供了一些共同的功能:路由和代理,数据和URL的转换,仪表板和分析,策略和限制以及开发人员工具(例如文档生成器)。 在这里,我们将研究10种流行的API管理工具-开源项目,商业产品,云服务及其组合-提供从API的全套服务套件到针对特定场景的集中工具之类的一切。
3scale最初是一种封闭源产品, 后来被Red Hat收购,并在大约两年的工作后开源 。 开源项目可以在Apache许可下免费使用,而Red Hat提供了商业支持的SaaS实施。
3scale的功能与本综述中的其他产品一致。 您会发现API版本控制,访问控制和速率限制,安全控制和分析。 3scale还提供了开发人员友好的功能,例如开发人员门户和CMS,用于为自己的API创建文档。 3scale还提供了用于通过API货币化的本机工具,例如发票和与付款服务的集成。
如果打算自己安装3scale进行生产,则需要Oracle数据库和OpenShift。 考虑到即使最小的3scale安装进行测试也需要Minishift (一个单节点OpenShift集群),如果您希望尽快开始使用3scale的免费90天试用版,则可能会为您提供最好的服务。
专业版的起价为每月750美元,适用于5,000个开发人员帐户,每天500,000个API调用以及最多三个API。 企业版(根据要求提供价格)消除了大部分限制。
Ambassador是一个可与Kubernetes一起使用的开源API管理系统。 Ambassador是在Envoy代理之上实现的, 该代理处理微服务的网络抽象,因此大部分繁重的工作由Envoy和Kubernetes完成。
大使的功能集与大多数其他API管理工具保持一致:URL重写和请求路由,过滤,身份验证和访问控制,速率限制和超时,以及与日志记录,故障排除和可见性工具的集成。
但是,大使的大部分功能都围绕运行时管理以及与Kubernetes和其他Kubernetes工具(例如Prometheus)的集成。 大使将API的设计和声明式配置完全留给用户使用。 原生不支持API版本控制等功能; 您必须自己处理这些事情。 这使Ambassador最适合作为Kubernetes部署的一部分而不是作为常规API管理解决方案来使用API。
Apiman(以前称为“ JBoss Apiman”)是一个用Java构建的Red Hat开源项目。 尽管Red Hat仍在维护它,但Red Hat在API管理方面的大部分积极开发似乎都已转移到其3Scale产品上。
Apiman专注于基础知识-发布和管理API,提供对这些功能的基于角色的访问,围绕API使用设置策略,收集运行时和计费指标以及为所有这些元素创建自上而下的组织结构。
Apiman可以围绕安全性,资源(例如,速率限制),数据转换,缓存和日志记录为API设置策略。 策略是通过JSON配置的,因此人类和机器都可以读取和编辑策略。 可以通过用户身份或角色来应用安全策略,并且可以对API进行宽松或严格控制。 您可以在URL中发布带有修订ID的API,并且不发布与使用相关的合同; 或者您可以要求一个API密钥并密切管理它们的版本控制。
超出基本要求的大部分事情都是您的责任。 例如,尽管有许多Apiman插件可用,但它们通常相当于核心项目维护者提供的Apiman功能的小扩展。
DreamFactory API管理平台是使用PHP中的Laravel框架构建的。 DreamFactory可作为免费的开放源代码产品获得,或者具有不同级别的商业支持(价格未公开)。 对于已经投资PHP并希望深入研究开源实现的开发人员来说,这是自然的选择。 DreamFactory还提供与Node.js和Python的服务器端脚本集成。
DreamFactory的“ Datamesh”功能可在其所有实例中立即使用,可让您组合来自多个异构数据库调用(包括对不同数据库产品)的结果,并将结果作为单个API调用返回。 同样,跨多个数据库的表更新可以合并为一个API调用。
DreamFactory文档缺少所有可用服务的单个规范可搜索列表。 该信息按类别组织,因此您需要执行一些手动钻取以查找可用的内容。 从好的方面来说,该文档包括许多针对特定用例的操作视频,例如设置简单的应用程序或连接到各种数据源。
Kong是最著名的API管理工具之一,最初是由Mashape(更名为Kong)创建的,用于为其自己的API市场产品提供动力。 Kong具有开源版本或具有附加管理,监视和开发人员功能的企业级商业产品(价格未公开)。 企业版可以在本地或选择的云服务中运行。 开源和企业产品的文档非常详尽。
Kong为Kubernetes集成提供了一个Ingress控制器,并提供了一个服务网格,以将Kong的功能“注入”到现有的服务部署中。 企业版提供了一个开发人员门户,旨在简化新API的创建并使新开发人员熟悉您的API代码库。
Kong通常使用数据库,但也可以使用JSON / YAML配置文件和内存存储以无数据库模式运行。 如果您仅运行单个最小的节点,但想要最大的性能,则最好。
用Go编写的KrakenD仅提供基本要点,但将高性能作为主要功能。 就像大多数内置在Go中的应用程序一样,KrakenD是作为一个独立的二进制文件提供的。 另外,也可以从源代码编译它,或者如果您想围绕它构建自己的应用程序,可以将其用作Go库。
KrakenD使用一个配置文件,该文件可以手动滚动或机器生成。 开箱即用地支持速率限制,响应处理,转发,端点调试,协议安全措施(例如,防止点击劫持),代理,存根和内存中响应缓存。
KrakenD实例可以集群以实现高可用性。 无需其他软件即可执行此操作,只需KrakenD本身即可。 您还可以在Kubernetes集群上部署KrakenD,而无需进行很多其他工作。 可以从KrakenD GitHub存储库中获得各种第三方中间件。
KrakenD的创建者可以提供企业支持,包括咨询和培训,但价格没有透露。
MuleSoft的Anypoint平台旨在成为一种完善的产品-它涵盖单个商业产品中的API设计,构建,托管,管理,集成和开发人员支持。
使用Anypoint,您可以从头开始开发API,或者重复使用其他MuleSoft客户创建并在Anypoint Exchange中共享的现有连接器和集成。 连接器可用于通用协议(文件访问,HTTP,电子邮件),用于数据转换的语言模块(Java,JavaScript),云服务(Amazon AWS),商业应用程序(Salesforce,SAP)和开源应用程序(MongoDB)。
对于那些将由合作伙伴或公众使用的创建API,Anypoint提供了API社区管理器来为这些API创建Web UI(MuleSoft称之为“门户”)。 都包括交互式文档,个性化(包括基于用户地理位置来定制输出等功能)和API使用情况分析。
Anypoint提供三种定价计划,黄金,白金和钛,这取决于客户支持水平和企业功能。 所有这三个计划都包括无限的API,并为“高级”连接器(例如,IBM AS / 400大型机连接器)收取额外费用。
Zuul是由Netflix的工程师创建的一个开源项目,是在内部构建的,用于处理对Netflix视频流服务的路由请求。 没有Zuul商业产品(至少不是Netflix提供的),因此您必须将Zuul提升并完全自己管理。
Zuul用Java编写,并且使用通用的Java工具(Gradle,Ivy,Maven)启动并运行。 与其他API管理系统相比,Zuul提供的功能集相对最少,侧重于跨服务过滤和分派入站请求。 Zuul确实提供了服务发现,负载平衡,连接池和调试功能( “请求通行证” ),但是缺少更复杂的功能,例如开发人员注册和自动文档编制。
Zuul是一个活跃的项目,为将来的版本计划了许多新功能。 例如,即将推出的“掉电过滤器”将禁用某些功能,以在活动繁忙时释放CPU。
Tyk默认情况下包括很多:API网关,分析工具,开发门户和管理仪表板。 它还包括在正式发布API之前对其进行模拟的功能,内置请求缓存(可以直接包含在API定义中)以及针对不同HTTP错误代码的响应模板。
Tyk有四个版本,每个版本用于不同的用例。 Tyk的开源版本是社区版,仅包含网关,该网关处理代理,访问控制,转换和日志记录。 您可以直接滚动自己的功能,或者通过使用Tyk的插件生态系统来支持多种语言。
本地版本使您可以在防火墙后面使用功能全面的商业产品。 单个网关许可证(实际上是开发人员版本)是免费提供的,没有API调用限制,尽管API不能在商业环境中使用。 商业使用许可的起价为每年$ 3000。
云和多云版本可用于各种流行的云服务,它们将Tyk作为托管服务提供。 免费提供每天支持1,000个API调用的基本单云版本(云服务提供商收取的任何费用除外); 专业级计划的起价为每月$ 450。
WSO2 API Manager是使用Java构建的开源产品的核心。 该产品可用于具有商业支持的本地部署或云托管部署,也可以作为云托管服务使用。
各种部署选项允许许多不同的管理方案。 例如,本地WSO2部署可以通过云托管的开发人员门户网站实施其策略和其他配置,更改可以在云和本地之间同步,也可以定期从云中推送(对于需要锁定)。
WSO2有大约200个连接器 ,可用于将外部服务连接在一起。 许多都是常见的开发人员必需品:Slack,Splunk,Kafka,Redis,Amazon S3等。
WSO2的另一个功能是“ API微网关”,可确保某些类型的呼叫获得更高的安全性和更低的延迟。 例如,可以通过这种方式处理用于管理网关的呼叫或在微服务之间路由的呼叫。
WSO2的一个新插件增加了与Kubernetes的Istio服务网格的集成 。 Istio不会管理它所管理的微服务公开的API,因此WSO2与Istio使用的Envoy代理进行了集成。
WSO2商业产品的定价从免费的两周试用期开始,最多可调用一百万个API,然后继续以每月550美元的价格(可访问2000万个调用),并从此扩展到定制配置。
翻译自: https://www.infoworld.com/article/3398484/10-best-api-management-tools.html
api管理工具