# API 网关

知晓云 API 网关（API Gateway），是 API 发布、管理、运维的全生命周期管理工具。让开发者通过可视化界面配置并生成 API 提供给全平台使用，省掉了繁琐的服务开发及部署环节，五分钟即可完成 API 定制开发。

使用 API 网关，还可以让运行在知晓云上的应用数据得以更加灵活地提供给外部系统集成，无需再通过知晓云的 OpenAPI 进行数据转接，使得业务推进速度跃升一个等级。

> 知晓云控制台进入「引擎」即可开启使用。

## 基础操作

### 创建 API 网关

通常，某些特定功能的实现需要通过一组相关的 API 来实现，API 网关可以帮您高效、便捷地管理一组有关联的 API。您可以为有关联的多个 API 创建一个 API 网关。

在 API 网关页面点击表格右上角的「添加」按钮打开创建 API 网关的弹窗。

填写`名称`，选择`前端协议`及填写`注释`。`前端类型`可选择 HTTP、HTTPS、HTTP 与 HTTPS 任一种。 点击 「确定」，API 网关创建成功并跳转到详情页面。

![创建 API 网关](https://3271136903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LVIIQcUXqNvyHRGzhur%2Fuploads%2Fgit-blob-3a6916bf7ea658a1aa8293ad240b752cdae7ab01%2Fgateway-create.png?alt=media)

### API 网关列表

在 API 网关列表页，您可以查看所有 API 网关的基础信息，包括域名、协议及各个环境的发布状态等，您还可以选择需要操作的 API 网关，点击操作列的「删除」对网关进行删除或者点击「编辑」跳去详情页对网关进行编辑，也可以点击监控列的图标跳转到 API 网关的监控页面查看网关的使用情况。

![API 网关列表](https://3271136903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LVIIQcUXqNvyHRGzhur%2Fuploads%2Fgit-blob-847697587ef0e3432a14895877a99aecdb4e9574%2Fgateway-list.png?alt=media)

### API 网关详情

![API 网关详情页](https://3271136903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LVIIQcUXqNvyHRGzhur%2Fuploads%2Fgit-blob-43050dd708272035c25edd89fd8c8584abe2dbc2%2Fgateway-detail.png?alt=media)

在 API 网关列表选择需要编辑的网关，点击操作列的「编辑」，跳转到 API 网关详情页面。

您可以在这边查看 API 网关的基本信息，点击右上角的「编辑」按钮可以将基础设置模块切换到编辑状态。

在编辑状态您可以重新为 API 网关设置网关名称、前端协议、公网域名及注释，公网域名可选择默认域名（在创建 API 网关的时候，知晓云会自动为您分配的域名）与自有域名任一种，如果您想要使用自有域名，则需要您填写一个已经在知晓云接入备案的域名（由于一个域名只能绑定一个 API 网关，建议在绑定网关时使用三级域名）。

编辑好后点击右上角的「保存」按钮保存修改。

该页面好包含「发布管理」和「API 管理」模块。您可以在该页面对 API 网关进行发布，为网关添加 API。

### 创建 API

在API 网关详情页，点击「API 管理」模块右上角的添加按钮即跳转到创建 API 的页面。

![创建 API](https://3271136903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LVIIQcUXqNvyHRGzhur%2Fuploads%2Fgit-blob-de0668399514ff98e8f9e1411d82e2084a5c3564%2Fgateway-create-api-1.png?alt=media)

创建 API 一共有两个步骤，分别为「前端配置」和「后端配置」

**前端配置**：API 的前端配置指提供给外界访问的相关配置，包括 API 名称、前端类型、请求协议、HTTP 方法、URL 路径和入参的定义。

在该步骤，必填的参数有`前端协议`、`API 名称`、`路径`和`请求方法`，其他选填。

`API 名称`：最长 50 个字符，支持 a-z，A-Z，0-9，\_，-。

`前端协议`：使用 API 网关的前端协议，这里不允许修改。

`路径`：API 的请求域名路径。必须以"/"开头，支持大小写字母，数字。

`请求方法`：API 请求方法。API 路径 + API 请求方法，是 API 的唯一标识。可选择 GET、POST、PUT、DELETE、ANY 方法。

`认证方式`：可以选择 JWT 和免鉴权任一种，默认选择 JWT。

`密钥`：`认证方式`选择 JWT 的时候，需要填写该参数。您需要先在 「设置- SDK」 添加了 JWT 之后才有可选择的密钥。可以点击右边的“查看密钥”跳转到 SDK 页面查看、添加 JWT。

`支持 CORS`：默认不选中，如果钩上则需要填写安全域名。

`最大并发量`：API 的最大并发量，单位为 次/分钟，不能大于应用套餐提供的最大并发量。详情请看[知晓云计价方案](https://cloud.minapp.com/pricing/)

`参数配置`：默认需要配置一个参数，如果不需要，则可以点击最右边 - 删除参数，如果需要多个参数，则可以点击下面的「添加」按钮添加参数配置。

配置好后点击「下一步」到「后端配置」。

![创建 API 前端配置](https://3271136903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LVIIQcUXqNvyHRGzhur%2Fuploads%2Fgit-blob-9df76bff78e8c0c96e0961f64647e0e660c08485%2Fgateway-create-api-2.png?alt=media)

![JWT](https://3271136903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LVIIQcUXqNvyHRGzhur%2Fuploads%2Fgit-blob-49e39192b29484a7a07830b5715e56dc33fbf8e6%2Fgateway-jwt.png?alt=media)

**后端配置**：API 的后端配置，是指实际提供真实服务的配置。API 网关会将前端请求，依据后端配置进行转换后，转发调用到云函数。

该步骤所有参数必填，`后端类型`目前仅支持 cloudFunction，不允许修改。

`云函数`：在 API 被调用的时候会跑您选择的云函数，处理云函数中的逻辑。您需要分别为正式环境和测试环境配置云函数，点开下拉框选择您的云函数，如果没有您要选择的，可以选择新增云函数，此时会新建一个浏览器标签页跳转到云函数页面，您可以在该页面新增一个云函数，然后回到创建 API 的标签页，点击下拉框右边的刷新图标获取最新的云函数列表，找到新建的云函数，选中它。

![创建 API 后端配置](https://3271136903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LVIIQcUXqNvyHRGzhur%2Fuploads%2Fgit-blob-661a4a1e9e794f879d275c42d78840a6646b97a0%2Fgateway-create-api-3.png?alt=media)

所有配置项都填完之后点击完成，API 创建成功跳转到 API 网关详情页查看 API 列表。

### API 列表

API 网关的「API 管理」模块可以帮您高效、便捷地管理一组有关联的 API 。

在 API 网关详情页的「API 管理」模块可以查看当前网关下所有 API 的信息。您可以选择需要操作的 API，在操作列点击删除按钮删除 API，点击编辑按钮跳去 API 编辑页对 API 进行编辑，点击调试按钮弹出调试弹窗对 API 进行简单调试确保无误。

![API 列表](https://3271136903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LVIIQcUXqNvyHRGzhur%2Fuploads%2Fgit-blob-88449addecf6cbb9306c31e7d1430e6926cbfb6a%2Fgateway-api-list.png?alt=media)

### API 网关的发布

在完成网关内 API 的配置并确保无误后，即可以进行发布。

在 API 网关的详情页的「发布管理」模块切换网关的发布状态，API 网关的发布在不同的环境是分开的，您可以分别设置正式环境和测试环境环境的网关发布状态。

选择您要修改的发布环境，点击操作列的「开启」或「关闭」切换发布状态。

![API 网关发布](https://3271136903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LVIIQcUXqNvyHRGzhur%2Fuploads%2Fgit-blob-e4ac0a6efecce8e9afae2242072e58cb9cb3c9e8%2Fgateway-publish.png?alt=media)

### API 网关的监控

在 API 网关列表页面点击您想要看的 API 网关的「监控」列的按钮即可打开监控面板。左上角提供了一些筛选器，供用户进行数据筛选。

![API 网关监控页](https://3271136903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LVIIQcUXqNvyHRGzhur%2Fuploads%2Fgit-blob-3dfc2f5ec65a0b24869af6b82af80840c422b9a1%2Fgateway-monitoring.png?alt=media)

监控面板可以查看`请求次数`、`响应时间`以及`内网出流量`三个类目的统计数据，开发者能够十分方便、直观地看到 API 网关的使用情况。

### API 的监控

在「API 管理」模块点击你想看的 API 的「监控」列即可打开 API 的监控面板。左上角提供了一些筛选器，供用户进行数据筛选。

![API 监控](https://3271136903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LVIIQcUXqNvyHRGzhur%2Fuploads%2Fgit-blob-f7faed935f8c92c2f9a757cd30ee1561c728f665%2Fgateway-api-monitoring.png?alt=media)

监控面板可以查看`请求次数`、`响应时间`以及`内网出流量`三个类目的统计数据，开发者能够十分方便、直观地看到 API 的调用情况。

## 验证 API 网关

![API 验证](https://3271136903-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LVIIQcUXqNvyHRGzhur%2Fuploads%2Fgit-blob-60e7c45afba6d0a60521b53c08530e5258a6c346%2Fapi-gateway-verify.png?alt=media)
