接口开放太麻烦?试试阿里云API网关吧

前言

我在多方合作时,系统间的交互是怎么做的?这篇文章中写过一些多方合作时接口的调用规则和例子,然而,接口开放所涉及的安全、权限、监控、流量控制等问题,可不是简简单单就可以解决的,这一般需要专业的开放平台来支撑。但为了开放几个接口就要做一个开放平台,实在是不合算。为此阿里云为了解决这类需求推出了一款强大的工具——API网关。本文将介绍阿里云API网关的特点和优势,以及如何使用API网关来简化接口开放的过程。

一、阿里云API网关收费模式

有些同学看到要钱可能就有点难受了,不过人家既然是产品,就是拿出来卖的,我们看看它是咋收费的,太贵了就不买。
这里我直接总结一下白嫖部分:

  • 每月(自然月)前一百万次API调用免费,当月超过部分按阶梯计费。
  • 流量费用在国内的话,1个G大约0.7元,这个好像必须收费。

总体来说,费用主要集中在流量费上,只是简单的数据流应该花不了多少钱,但是如果大量传输图片、文件就可能会很贵。(官方计费链接)

二、阿里云API网关的特点和优势

  • 简化接口管理:API网关提供了一套方便的管理界面,可以灵活配置接口的参数、返回值、鉴权方式等信息,同时还支持接口版本管理和灰度发布,方便开发者进行接口的迭代和升级。

  • 安全可靠:API网关支持多种鉴权方式,包括签名鉴权、OAuth2.0鉴权等,可以确保只有授权的用户才能访问接口。此外,API网关还支持自定义流量控制和访问控制,可以有效防止恶意攻击和滥用接口。

  • 高性能:API网关采用分布式架构,支持海量并发请求,可以承载高流量的业务场景。同时,API网关还提供了实时监控和报警功能,可以及时发现并解决接口性能问题,保障系统的稳定性。

  • 弹性扩展:由于API网关是云服务,可以根据业务需求灵活扩展,无需担心硬件和带宽的限制。而且,API网关还支持自动化部署和灵活的配置管理,方便开发者进行系统的运维和升级。

这里直接让ChatGPT生成了,大家有兴趣的话自己看看就行。

三、如何使用阿里云API网关

1. 调用逻辑

(1)原始调用方案

最原始的办法就是服务服务提供方提供一些API出来,然后给一个接口文档,服务调用方直接调用即可。这种方式简单粗暴,但是缺点也显而易见:缺乏安全、权限、监控、流量控制等。

(2)阿里云API调用方案

阿里云API方案的话,首先服务提供方需要将自己的API注册到阿里云API平台上,然后对调用方进行授权,只有有权限的调用方才可以调用API,除此之外还有日志、监控与告警等基础服务,相比原始调用方案来说,强大了不止一点。

2. 服务提供方注册API

第一步、登录阿里云网站—>打开阿里云API网关界面

阿里云API网关官网地址

第二步、开放API—>分组管理—>创建分组


创建好之后会有一个API分组ID,并且会提供一个公网二级域名,正常来讲这个域名就已经可以调通接口了,但是这个二级域名仅供测试使用,客户端直接调用时会有每天 1000 次访问限制。
我的做法是根据自己的域名开一个二级或者三级域名,通过CNAME解析到阿里云的这个公网二级域名,这样就不会有次数限制了。
弄好域名解析后,需要到当前分组独立域名这里配置一下,如下

第三步、开放API—>API列表—>创建API

API的创建是关键步骤,我这里拆开来讲。

a. 基本信息

主要是API接口名称,其他的东西可以不改,直接下一步就行了。

b. 定义API请求

定义API请求主要是设置请求path和参数,这个path和参数是服务调用方使用的,一般我们会这里定义的path和参数与后端设为一样,可以减少理解的成本。

c. 定义API后端服务

这里就是服务提供方的服务API地址。

d. 定义返回结果

可以不填,直接点击创建。

e. 将API发布到测试

API发布之后还不能立马调试,还需要创建一个调用API的应用才可以。

第四步、调用API—>应用管理—>创建APP

这里创建完调用API的应用之后会自动生成两套认证秘钥:ak/sk或appCode,这两种任选其一就行。

第五步、API授权给应用


授权给应用后,当前API就和应用建立了联系,有一个稍微麻烦的地方,测试、预发、线上需要分三次授权。授完权,应用在调用API的时候,使用对应ak/sk或appCode就可以调用这个API了。

第六步、API调试

调试情况如上图。

3. 多语言调用Demo一键生成

这个一键生成调用代码我感觉是这个产品的亮点,Java、Python、C++、.NET都有案例,省了我们很多时间,毕竟开放文档写的再好也不如直接来一个一键执行的Demo好用啊。

四、总结

ChatGPT的总结

阿里云API网关是一个强大的工具,可以帮助开发者简化接口开放的过程,提供安全、高效的API访问入口。通过使用API网关,开发者可以更加专注于业务逻辑的实现,而无需过多关注接口的安全和管理问题。相信随着云计算和API经济的不断发展,API网关将在未来扮演越来越重要的角色。

我自己的看法

功能确实很多,费用也还合理,如果哪天你想通过API的方式分享你的能力,而又不想做一套复杂的开发平台体系,那么阿里云API网关确实是一个不错的选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/171220.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ElasticSearch简单操作

目录 1.单机部署 1.1 解压软件 1.2 创建软链接 1.3 修改配置文件 1.4 配置环境变量 1.5 后台启动 2.配置分词器 2.1 安装IK分词器 2.2 ES 扩展词汇 3.常用操作 3.1 索引 3.1.1 创建索引 3.1.2 查看所有索引 3.1.3 查看单个索引 3.1.4 删除索引 3.2.文档 3.2.1…

@Async注解的坑

问题描述 一个方法调用另一个方法(该方法使用Async注解)在同一个类文件中,该注解会失效! 问题复现 TestAsyncController 类 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.annotation.Async; im…

双十一大促已过,虾皮、Lazada年底如何通过测评补单打造搜索排名

双十一大促已过,有人欢喜有人忧,不管怎么样,年底的这波旺季还是要好好把握的。 如何提升虾皮搜索排名 1、标题关键词匹配度 Shopee、Lazada的排名规则主要是根据用户搜索时输入的关键字和卖家的商品标题、描述等是否相匹配来进行排名&…

P6入门:项目初始化7-项目详情之代码/分类码Code

前言 使用项目详细信息查看和编辑有关所选项目的详细信息,在项目创建完成后,初始化项目是一项非常重要的工作,涉及需要设置的内容包括项目名,ID,责任人,日历,预算,资金,分类码等等&…

qnx log 系统

前言 本文主要介绍QNX 系统中的 log 打印相关接口和使用方法 软件环境:qnx7.1 一、QNX查看 log 的工具 slog2info 1. slog2info 的相关介绍 和linux 中查看 kernel log 信息的 dmesg 命令一样, qnx 里面也有一个查看 log 信息的命令,那就是 slog2info 命令, 如下图所示是…

Spark SQL 每年的1月1日算当年的第一个自然周, 给出日期,计算是本年的第几周

一、问题 按每年的1月1日算当年的第一个自然周 (遇到跨年也不管,如果1月1日是周三,那么到1月5号(周日)算是本年的第一个自然周, 如果按周一是一周的第一天) 计算是本年的第几周,那么 spark sql 如何写 ? 二、分析 …

0基础学习PyFlink——水位线(watermark)触发计算

在《0基础学习PyFlink——个数滚动窗口(Tumbling Count Windows)》和《0基础学习PyFlink——个数滑动窗口(Sliding Count Windows)》中,我们发现如果窗口中元素个数没有把窗口填满,则不会触发计算。 为了解决长期不计算的问题&a…

Arthas(阿尔萨斯)--(二)

目录 一、Arthas学习 1、JVM相关命令一 1、dashboard 2、thread 3、jvm 4、sysprop 一、Arthas学习 Arthas(阿尔萨斯)--(一) Arthas代码开源地址 1、JVM相关命令一 1、dashboard dashboard:显示当前系统的实时数据面板,按q或ctrlc退出 ID: Java 级别的线…

Docker - 容器数据卷

Docker - 容器数据卷 什么是容器数据卷 等同于挂载,将容器内的目录地址指向于宿主机文件系统中 直接使用命令来挂载 -v docker run -it -v 主机目录:容器内目录# 测试 docker run -it -v /root:/home centos /bin/bash [rootiZ2zeg7mctvft5renx1qvbZ ~]# docker …

vscode 快速打印console.log

第一步 输入这些 {// Print Selected Variabl 为自定义快捷键中需要使用的name,可以自行修改"Print Selected Variable": {"body": ["\nconsole.log("," %c $CLIPBOARD: ,"," background-color: #3756d4; padding:…

Linux---(六)自动化构建工具 make/Makefile

文章目录 一、make/Makefile二、快速查看(1)建立Makefile文件(2)编辑Makefile文件(3)解释(4)效果展示 三、背后的基本知识、原理(1)如何清理对应的临时文件呢…

Js 语句

JavaScript 语句向浏览器发出的命令,语句的作用是告诉浏览器该做什么;分号用于分隔 JavaScript 语句,通常我们在每条可执行的语句结尾添加分号;使用分号的另一用处是在一行中编写多条语句。 JavaScript 语句通常以一个 语句标识符…