10分钟上手,API网关(API Gataway)教程

文章简述

  • 本次给大家带来一个简单易用的API网关 (详情看这里👉APIOAK网关) 的使用教程,所谓的简单易用就是:「最大程度节省使用者时间,界面简单明了,操作方便,对于想要使用的功能一目了然」。这也是APIOAK设计的初衷。所以 操作性上经过 反复反复又反复 的采访众多程序猿(使用习惯),产品狗(用户使用体验),了解其使用习惯和操作惯性来确定出了一套适合大部分人的操作界面。
  • 网关安装和启动也是相当简单,相当容易的,相对于一些复杂的安装,该网关的安装可谓是小菜一碟了。只要动动小手指即可将网关安装并启动,就可以直接使用了。
    敲黑板 👽👽👽:这里注意了,该网关的安装不会直接安装到系统之中,是单独的安装到固定的目录之中,这样做的目的也是出于 对linux的软件卸载可谓是麻烦麻烦又麻烦的考虑,所以该网关做到了,「想要卸载直接删除掉目录即可」,简单又方便,了却了卸载痛苦的后顾之忧啊。
  • 废话不多说,直接上安装教程和注意点:
    ①. 安装网关依赖 安装网关依赖,重点重点(关注版本):安装 OpenResty >= 1.15.8.2MySQL >= 5.7 或者 MariaDB >= 10.2
    ②. 安装网关 执行命令,一键安装即可。
    ③. 配置并启动 配置好数据库连接,即可启动网关。

再次敲黑板 👽👽👽配置重点来了,哎~ 那个谁,往这里注意看

  1. 安装后配置时要把/usr/local/apioak/conf/apioak.sql 基础数据结构导入数据库中,导入后并修改 /usr/local/apioak/conf/apioak.yaml 配置文件。
  2. 使用 docker 部署的小伙伴要注意了,运行apioak 的时候 需要把nginx配置文件中的 resolver 配置成docker 内置 的DNS解析服务器。
  1. 如果你是纯小白,么关系,我们想到了,教程中可能会出现你不太理解的名词,咋办?名词解释咱也有 [名词右上角的数字看到没,你倒是点呀,那可是名词解释,像这样(右上角蓝色的数字)1] )
  2. 如果你不是纯小白,么关系,我们也想到了,我们专注于简单上手,操作易用,入门门槛低的网关设计,放心使用即可。
  3. 如果你是大牛,么关系,我们也想到了,我们也有做的不够好的,欢迎你来指导我们更上一层楼。(啊~~~, 只要人人都献出一份爱,世界将变成美好的人间!)

「细节决定成败」 APIOAK也一样,满满的细节,满满的干货,仔细阅读你会收获更多。

下面 :请开启你的高逼格使用之路吧(大牛忽略这句话,就当我没说! 😆🤭😆🤭😆🤭

使用教课程

  • 注册

注册很简单,使用邮箱注册即可使用网关,跟平时网站的注册一样。当然这里如果想支持更加丰富的业务可以单独进行开发。
注册


  • 登录

将之前注册好的账号在这里直接登录即可开启你的网关使用之路。
登录


  • 用户管理

登录后会默认到项目管理,让你名下的项目可以一目了然,系统中只有一个超级管理员角色,超级管理员可以看到每一个成员的项目,方便用户的管理。 系统管理员也可以操作系统用户成员:「用户新建」/「用户启禁用」/「用户密码修改」/「用户删除」。
用户列表


用户新建:跟用户注册一样,只是多了是否将新建用户启用的选项,毕竟是系统超级管理员操作(给点面子,可以禁用删除用户的那种 😏😏😏),目前只有超级管理员可以新增用户并查看所有用户列表 其余所有人都只能看到自己包括项目管理员。
用户新建
用户启禁用:显而易见,就是想让你用你就能用,不想让你用你就不能用了呗(你有脾气?有脾气连账号都给你删掉,就这么 豪横 ! 就有这权限 😏😏😏)。
用户删除:说曹操曹操到,不仅不让用,还 斩草要除根 😎😎😎


用户密码修改: 将用户的密码重新设置,就是:更改密码。
用户密码修改


  • 项目管理

登录后会默认到项目管理,让你所拥有权限的项目可以一目了然,系统中只有一个超级管理员角色,超级管理员可以看到每一个成员的项目,方便项目的管理。
每一个用户在自己的项目中又是一个项目管理员,可以针对项目进行操作的操作有:「项目编辑」/「项目详情」/「项目删除」/「项目成员」/「项目路由」。
又敲黑板了哈! 👽👽👽:项目中的操作,采用统一的右侧 抽屉式侧滑操作2 单页面应用,操作简易,提高效率。(不对,应该是所有的操作都是抽屉式侧滑操作单页面应用 😎😎😎


项目列表:项目列表中展示简单的项目信息,提取出项目中最重要的信息来展示,「项目名称」/「当前用户在该项目中的角色」/「项目路径」/「项目描述」/「项目操作按钮」。
注意: 「项目名称」前面的 「插头」 标志了没?那是项目的 插件!插件!插件!3 (不行了,不行了,我脑袋里有画面。。。😉😜😉😜😉😜。。。我怀疑你们在这里聚众飙车,所有看到这里的都拘了,包括我!😰😰😰) 别着急,别着急,后面会单独说明。
我们的原则就是:非必要则不展示的原则豪横 ! 😎😎😎
项目列表


项目成员:这里先说下项目成员的作用(按照顺序要先说「项目编辑」的,这里让「项目成员」差个队)「项目成员」就是要给该项目设置可以查看的用户,并且设置用户时也可以选择性让项目成员成为项目管理员,项目管理员可以针对项目进行编辑,非管理员则只有查看权限。
项目成员-列表


项目成员—增加:增加方式为下拉式选择成员,选择对象为 除超级管理员和本项目成员 以外的用户,增加项目成员的同时可以设置是否开启新成员项目管理员权限,多项目管理员为平行管理设计,我叫其为「多租户」4
增加完成后会以 列表 形式展示在当前页面的下方,列表中也可以指定用户是否为管理员,也可直接删除项目成员,项目管理员可以互相管理。
即:超级管理员可以增加全部项目的管理员和成员,项目管理员可以增加当前项目中的管理员和成员。
项目成员—增加


项目编辑:项目编辑主要是针对项目属性参数的增加和修改。
项目路径:这里是前端请求的路径组合部分之一,请求时该路径会在 「路由路径」(「路由路径」将在路由新建中提到)之前
项目支持 多环境5 配置,环境分为了,「测试环境」6/「预发环境」7/「生产环境」8,可以在不同环境间进行切换,各环境相互独立。各环境中支持 多节点9 配置,多节点配置的算法支持 CHASH10ROUNDROBIN11(算法支持后续还会继续完善)。
同时有超时限时配置,让响应数据变的更智能。
注意:服务结点的配置可以支持端口和权重的配置,多节点自由搭配,让你的服务搭配的更 得心应手随心所欲为所欲为 (自由三联-红绿灯)。
项目编辑


项目详情:项目的详情会展示项目中所有的属性配置参数,基本信息,上游服务12,生产环境(多节点),预发环境(多节点),测试环境(多节点),想要快速方便的检查咱就得一页展示,项目的所有信息一目了然。你要是说:「翻页?TAB?瀑布流?13(统统地 不要,就一页展示, 任性
项目详情


项目删除:项目的删除就比较简单了,显而易见,二次弹窗提醒必不可少,如果项目中有路由未删除也会删除失败,项目删除后的后果想必大家都知道 😈😈😈,不解释。
项目删除


  • 路由管理

路由的管理,两个入口,一个入口是从咱们的项目列表中的 APIs中点进路由列表(注意:点击API是进入的时候会在筛选路由列表的筛选项目下拉列表中默认选中点击APIs的项目进行筛选路由),也可以点击左侧的 路由管理到咱们的路由列表页面(注意:点击「路由管理」进入的时候展示的是自己全部项目下的路由列表,此时是不区分项目的)。路由列表页面的信息展示并不多,依然不必须遵从 非必要则不展示的原则 。展示信息有:「名称」/「路径」/「所属项目」/「环境」/「路由操作按钮」。
注意: 「名称」前面的 插头 标志,那是路由的 插件!插件!插件!3 (不行了,不行了,我脑袋里又有画面了。。。😉😜😉😜😉😜。。。快拘了,拘了,全拘了,包括我!)


路由新建:点击新建路由可以直接展示出路由要填写的参数,增加路由总共分为三步骤( 路由编辑 与这里保持同步):
前端配置:前端配置主要以用户访问的地址和参数配置为主,其余为路由的基本属性配置信息。

Ⅰ.路由名称:基本属性中的路由名称,展示在路由列表中的名称一栏。
Ⅱ.路由路径:这里是前端请求的路径组合部分之一,放在项目路径(「项目路径」在项目编辑中提到过)之后

咳咳~,又开始敲黑板了哈!👽👽👽重点来啦,快记一下哈:
路由路径 支持 {} 内输入变量,路径上设置了变量 必须在下面的参数配置中定义。
     例如:/apioak/{id},参数id则必须在参数配置中增加 。
❷ 同时路径格式 必须以 “/” 开头,支持大小写字母、数字 和 - _ . 等符号

Ⅲ.请求方式:前端请求接口时的请求方式,目前支持:GET / POST / PUT / DELETE。
Ⅳ.支持跨域:在请求接口时,是否支持接口请求的跨域14
Ⅴ.路由备注:针对当前路由的简单说明。
Ⅵ.参数配置:前端请求接口时需要传递的参数配置。(注意:参数支持多个,多个参数支持不同位置)。

❶参数名称:请求时使用的参数名称。
❷参数位置:请求时参数所在的位置,目前支持:Header / Path / Query。
❸参数类型:请求时参数的类型,目前支持:STRING / INTEGER / BOOLEAN / FLOAT。
❹参数必填选项:请求时该参数是否为必填参数,开启为必填,关闭为选填。
❺参数默认值:请求时参数的值。 开启必填时,该值不允许设置默认值。关闭必填时,可以设置参数默认值。
注意:如果参数设置了为必填,但是在前端请求时没有传递该参数,网关会直接拦截 把请求打回去
❻参数备注:针对当前参数的简单说明。

路由新建-前端配置


后端配置:后端配置主要是网关内转发到上游服务时使用的地址和参数配置为主。

Ⅰ.后端路径:转发上游服务的 全路径15 地址。
Ⅱ.请求方式:转发上游服务时的请求方式,目前支持:GET / POST / PUT / DELETE。
Ⅲ.后端参数配置:将前端请求的参数转发到上游服务参数时的配置。(注意:参数支持多个,同时支持前后端参数的交叉映射)。

❶后端参数名:转发上游服务时使用的参数名称。
❷后端参数位置:转发上游服务时参数所在的位置,目前支持:Header / Path / Query。
❸前端参数名:前端请求时使用的参数名称。这里主要是与后端参数做对应关系(该字段仅做展示)。
❹前端参数位置:前端请求时使用的参数所在的位置。这里主要是与后端参数做对应关系(该字段仅做展示)。
❺前端参数类型:前端请求时使用的参数类型。这里主要是与后端参数做对应关系(该字段仅做展示)。

Ⅳ.常量参数:看到 常量 很容易想到,固定不变的值,没错,这里是固定不变的参数值,转发上游服务时固定不变的参数。(注意:常量参数支持多个,多个常量参数支持不同位置)。

❶参数名:常量参数的名称。
❷参数位置:量参数的位置,目前支持:Header / Path / Query。
❸参数值:常量参数的参数值。
❹类型:常量参数的参数值的类型,目前支持:STRING / INTEGER / BOOLEAN / FLOAT。
❺备注:常量参数的简单描述。

路由新建-后端配置


响应结果:响应结果主要是为前端返回的结果数据,为什么要单独说这一块呢,应了那句话:既然存在,肯定不是有道理的。下面重点来了。
咳咳~,又敲黑板啦!👽👽👽重点不断,一波不熄接一波,快记一下哈:
Ⅰ.支持自定义返回数据的类型,目前支持:application/json 、 text/html 、 text/xml。
Ⅱ. 成功响应实例:请求成功后的响应 Mock数据16,Mock数据要与 路由发布 配合使用。
Ⅲ.失败响应实例:同请求成功后的响应一样。
Ⅳ.错误码配置:可以清晰看到接口中的错误信息,响应数据状态码,将接口响应数据前置。
注意啦,Mock数据的重点来喽!

接口发布前所有前端请求的数据返回结果都是Mock数据,接口发布后会使用发布环境的真实数据。
    理由:前后端并行开发 提前规定好接口数据的格式,接口录入到网关内,写入Mock数据。
    前端正常调用接口数据开发功能,同时后端按照Mock数据格式正常开发接口。

路由新建-响应结果


路由列表:路由列表的数据,除了基本属性数据展示外,还有一些针对接口的操作,来来来,围观下,咱们一一探讨。

路由基本属性:在增加路由时填写,后面会一一说到。这里不再赘述。展示字段为:「路由名称」/「路由路径」(包含了请求方式)/所属项目」(表明该路由数据哪个项目)/「环境状态」(灰色为未发布,绿色为已发布)/「关于路由的操作」(复制,发布,下线,编辑,详情,删除)。路由列表


路由复制
路由的复制主要是针对命令行操作时使用的,复制不同环境时获取的命令不一样,复制后直接到命令行粘贴即可访问(注意:前提是机器上已经安装了curl)。

Ⅰ.复制测试环境:curl -X GET -H ‘APIOAK-API-ENV: TEST’ URL (这里的URL是自己网关前端访问的url地址)
Ⅱ.复制预发布环境:curl -X GET -H ‘APIOAK-API-ENV: TEST’ URL (这里的URL是自己网关前端访问的url地址)
Ⅲ.复制生产环境:curl -X GET URL (这里的URL是自己网关前端访问的url地


路由发布
路由的发布主要是作用在响应数据上,上面提过使用方法,要跟 响应结果 配合使用,未发布的接口,响应的数据都是Mock数据,接口一旦发布,访问了发布环境的接口,则响应数据为该环境下的真实数据。(在环境一栏中可以看到发布状态,已发布的环境都是绿色的)


路由下线
路由下线,很明显跟路由发布是相对的,已经发布的环境才会进行下线。(在环境一栏中可以看到下线状态,已下线的环境都是灰色的)


路由删除:显而易见:直接把路由干掉了,就想删掉,就任性。(啥都不说,就是干 😬😬😬


路由详情:路由详情,跟「项目详情」保持了一样的风格,展示路由中所有的基本属性的配置参数:「基本信息」/「前端信息」/「后端信息」/「预发环境」/「响应信息」快速方便的检查咱还是得一页展示,路由详情依旧跟项目详情一样一目了然。那些 翻页?TAB?瀑布流?(还是统统 不要,还是那么 任性
在这里插入图片描述


路由编辑:同样分为了三步骤:「前端配置」/「后端配置」/「响应结果」。具体信息与不走,可直接参考 路由新建
显而易见,这里就不再赘述。

  • 插件管理

插件管理:这里之所以把插件单独拿出来说一下,因为这里有重点有细节。APIOAK的扩展也提供了强大的插件功能,让你可以自定义插件的参数,跟着你的心走,想怎么配置怎么配置,让你有种APIOAK完全掌握在自己手中的感觉(此刻!你已经将APIOAK据为已有,已被你的强悍所征服!此刻的APIOAK已是你的宠儿,任由你万般蹂躏,哈哈哈哈哈😬😬😬~~~)。
咳咳~,又到了敲黑板的时候!👽👽👽 重点细节又来了,快记一下哈:
重点:

作用域:
       ❶.项目的插件作用于整个项目(项目下所有路由都会继承项目上的插件配置)。
       ❷.路由的插件作用于单个路由。
       ❸.冲突:如果项目和路由的插件冲突,则优先按照路由插件的配置参数。
在编辑的时候会默认选择插件配置(这里存在两个TAB 「插件信息」「插件配置」),即 可以直接修改的参数配置处。
添加的时候默认是显示插件信息 增加插件时为 下拉选择 时里面不仅有插件名称还有插件类型 这样可以加速用户的选择。

项目/路由 插件:因为项目插件和路由插件的配置规则一样,这里放在一起说明。
插件增加:插件的增加入口在「插件列表」的右上角「添加」按钮(插件列表入口在「项目列表」/「路由列表」名称前的插头 标志)。

插件增加时默认展示为插件的基本信息,选择插件(以列表下拉形式选择要增加的插件),插件类型(不可更改),插件描述(不可更改)。TAB切换到「插件配置」可以自定义当前选择插件的参数。增加插件完成后会以 列表 形式展示在当前页面。
细节,细节来了哦~:
       选择插件时不仅展示插件的名称,还会展示插件的类型 「认证类」 /「 限制类」 方便快速的选择需要类型的插件。
      同一个项目或者同一个路由的插件 不会重复,插件列表只会展示当前 项目 或者 路由 没有增加的插件。
      插件的增加完全不影响插件列表的展示,会在插件列表上放展示插件增加的信息。
在这里插入图片描述


插件列表:插件列表入口在「项目列表」/「路由列表」名称前的插头 标志。

「插件列表」的展示,主要是插件基本信息 「插件名称」/「插件描述」/「插件操作」。
这里注意:有个小细节:
      插件名称左侧的“尖括号”,点击可以展示当前插件的配置信息。
      (如果查看插件配置信息需要点进插件内部,那得看多麻烦,在这里看一目了然)
     插件的编辑点击进去直接命中为可填写的插件配置信息,无需再次TAb切换了。

在这里插入图片描述


插件编辑:插件编辑其实很简单了,无非就是针对插件参数的修改,几插件重新配置。可能有细心的朋友会发现:

插件编辑的图里面直接展示的是「插件配置」的TAB(直接修改插件配置参数的位置)。
这里是点击编辑的时候直接展示的页面,无需再去点击切换TAB即可完成插件的重新配置。

在这里插入图片描述


插件删除:插件删除不用再多少过了吧?都知道(干掉,干掉,全部干掉!!!!😉😉😉)。

到这里,你就掌握了APIOAK的基本使用技能了,是不是 很简单?很轻松?很方便? (简易三联-红绿灯)PS:不要跟我说「你以为你说这么多,我就会了么?」,我不听我不听。
我个人认为在细节的处理上,还是比较方便的,能节省不少使用成本,可能也会符合不少使用者的习惯。
括弧:( 以上是我本人这样认为的,欢迎你来给我们更好的建议,我们会做到不让你失望的。文章写的有不对的地方,或者有歧义的地方,欢迎指正 🤝🤝🤝

雁过留声
您的支持是给我们最大的鼓励,那就让我们看到您足迹,让我们知道您对我们的支持。
点击这里 或者 点击这里 进入点个 star,比什么都重要。


感谢支持!!!



  1. “像这样” 解释:见到这样的右上角的 数字小角标的时候,说明这里有针对该词的解释,点击进去即可看到响应词语的解释说明。 ↩︎

  2. “抽屉式侧滑操作” 解释:抽屉式侧滑操作是指当前页面内,点击了要查看的信息时,后又右侧侧滑出一个页面块,悬浮在当前页面的上层,但是不影响当前页面的任何数据,页面块的操作也很灵活,可以随时关闭,关闭也不影响打开页面的操作,侧滑出页面块的时候可以在页面块内完成相应的操作。操作简单,展示炫酷。 ↩︎

  3. “插件” 解释:是一种遵循一定规范的应用程序接口编写出来的程序。很多软件都有插件,插件有无数种。这里APIOAK的插件就是有验证类插件(验证权限),控制类插件(控制流量),让系统功能更加的丰富,笼统的来讲,就是按照一定规范开发的外接功能包(后期会支持自定义插件配置)。 ↩︎ ↩︎

  4. “多租户” 解释:相当于是可以同级是可以相互管理的,或者是互踢, 这样设计的原因:比如A在公司时管理员A离职了B接手 A把B设置为管理员后 A离职后B可以把A在项目中题掉。 ↩︎

  5. “多环境” 解释:这里多环境分为三种环境,「测试环境」/「预发环境」/「生产环境」,每一种环境都是接口测试的每一个每一个阶段。由最初的「测试环境」到最终的「生产环境」。 ↩︎

  6. “测试环境” 解释:这里的测试就是又测试人员来测试使用的,并且研发人员随时可以改动接口的数据。 ↩︎

  7. “预发环境” 解释:这里也是由测试人员来测试使用的,数据跟线上保持统一一直,但是不对外开放。 ↩︎

  8. “生产环境” 解释:这里是已经通过了测试环境,预发布环境的测试后才会到这一步,真正对用户开放使用了。 ↩︎

  9. “多节点” 解释:笼统的来讲就是 多台服务器,共同跑同一个服务,就叫做多节点,如果只有一个服务器就叫做单节点。 ↩︎

  10. “CHASH算法” 解释:根据服务消费者请求客户端的IP地址,通过哈希函数计算得到一个哈希值,将此哈希值和服务器列表的大小进行取模运算,得到的结果便是要访问的服务器地址的序号,这里相同的IP客户端,如果服务器列表不变,将映射到同一个后台服务器进行访问。 ↩︎

  11. “ROUNDROBIN算法” 解释:每一次把来自用户的请求轮流分配给内部中的服务器,从1开始,直到N(内部服务器个数),然后重新开始循环,在配置节点的时候都会配置一个权重,根据权重的大小,将地址重复增加到服务器地址列表中,权重越大,该服务器每轮所获得的请求数量越多。 ↩︎

  12. “上游服务” 解释:服务消费者请求的实际服务器,也可以理解为在配置APIOAK后端服务时配置的多个节点服务器。 ↩︎

  13. “翻页-TAB-瀑布流” 解释:前端展示数据的一种形式,翻页就是常见的底下带页码的,第1页,第2页这种。TAB标签就是最上面会有一行TAB标签,进行点击切换。瀑布流就是页面到底后自动刷新出来数据加载大搜页面的最底部。 ↩︎

  14. “跨域” 解释:是指浏览器不能执行其他网站的脚本。这里如果访问了服务器A,这时候转发达服务器B,跨域不能访问这里是不能去请求的,支持跨域就是可以随便访问任何一个服务器上的服务了。 ↩︎

  15. “全路径” 解释:这里的全路径就是URL中摘除域名以后的字符串(也可叫路径),这就是全路径,例如:www.xxxxx.com/api/v1/test ,这里 /api/v1/test 即为咱们文章里所说的全路径。 ↩︎

  16. “Mock数据” 解释:模拟后端返回的结果数据。这里自己组合一段后端返回的指定数据结构的结果数据,增加到响应默认值上即可,接口未发布的情况下都回返回这里的模拟数据。 ↩︎

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值