以服务维度发布 API
设计、开发和部署 API 后,你可以在 API7 企业版中发布这些 API,以便进行访问。你可以将其发布到测试环境、预生产环境、生产环境,或多个区域。
本教程以 Swagger Petstore
为例,介绍如何将 API 发布到测试环境。通常情况下,开发人员根据后端服务组织 API,因此 API7 以服务维度管理 API。特定后端的 API 共享配置,并在后端发生变化时一起更新。
前提条件
- 安装API7 企业版。
- 获取一个具有超级管理员 或 API 提供者 角色的用户账户。
- 将默认网关组重命名为
测试网关组
并配置网络。该网关组将作为测试环境的 API 网关。 - 在网关组中至少新增一个网关实例。
新增服务和路由
- 手动新增
- 导入OpenAPI 3.0
- 从左侧导航栏中选择 服务, 然后单击新增服务。
- 选择 手动新增。
- 名称填写
Swagger Petstore
。 - 单击新增。
- 在服务详情页面中,单击新增路由。
- 在新增路由 对话框中, 执行以下操作:
- 名称填写
getPetById
。 - 路径填写
/pet/*
。 - HTTP方法选择
GET
。
- 名称填写
- 单击新增。
- 从左侧导航栏中选择服务,然后单击新增服务。
- 选择导入OpenAPI.
- 上传 YAML/JSON 文件,然后选择
HTTP
作为上游 Scheme。 - 单击下一步。
- 确认以下信息都无误后单击下一步:
- 名称:来自 OpenAPI 文件中的
title
。 - 标签:来自 OpenAPI 文件中的
tag
。 - 描述:来自 OpenAPI 文件中的
description
。 - 路由:来自 OpenAPI 文件中的
Paths
。
- 名称:来自 OpenAPI 文件中的
- 单击新增。
使用上游节点发布服务
- 发布单个服务
- 批量发布服务
- 从左侧导航栏中选择 服务, 然后选择目标服务
Swagger Petstore
,然后单击立刻发布。 - 选择
测试网关组
,然后单击下一步。 - 在服务发布 对话框中, 执行以下操作:
- 新版本填写
1.0.0
。 - 如何找到上游选择
使用节点
。
- 新版本填写
- 单击新增节点,在对话框中, 执行以下操作:
- 主机和端口,填写 API 在测试环境的后端服务地址。
- 权重使用默认值
100
。 - 单击新增。
- 确认信息都无误后,单击发布。
- 从左侧导航栏中选择 服务, 单击批量发布服务。
- 选择
测试网关组
,然后单击下一步。 - 按照发布单个服务的类似步骤,添加多个待发布的服务。
- 批量发布服务要求操作者同时具有所选的所有服务的操作权限(API Provider授权范围),且多个服务之间不可以有重复路径的路由,以免发布后引起冲突。
- 确认信息都无误后,单击发布。
使用服务发现发布服务
Consul、Eureka、Nacos 或 Kubernetes Service Discovery 等服务发现机制可以动态检测后端节点。因此,用户无需手动输入多个上游节点。
信息
发布后,服务无法在使用定义的上游节点和使用服务发现之间直接切换。不过,可以通过流量灰度在上游节点和服务发现之间进行切换。
- Kubernetes
- Nacos
- 从左侧导航栏中选择 网关组, 然后选择
测试网关组
。 - 从左侧导航栏中选择
服务注册中心
,然后单击新增服务注册中心连接。 - 在新增服务注册中心连接 对话框中, 执行以下操作:
- 名称填写
测试 Kubernetes 注册中心
。 - 发现类型选择
Kubernetes
。 - 填写API 服务器地址和令牌。
- 名称填写
- 等待连接,确保注册中心连接状态为
健康
。 - 从左侧导航栏中选择 服务, 然后选择目标服务
Swagger Petstore
,然后单击立刻发布。 - 选择
测试网关组
,然后单击下一步。 - 在服务发布 对话框中, 执行以下操作:
- 新版本填写
1.0.0
。 - 如何找到上游选择
使用服务发现
。 - 服务注册中心选择
测试 Kubernetes 注册中心
,并选择好对应的命名空间和服务名称。
- 新版本填写
- 从左侧导航栏中选择 网关组, 然后选择
测试网关组
。 - 从左侧导航栏中选择
服务注册中心
,然后单击新增服务注册中心连接。 - 在新增服务注册中心连接 对话框中, 执行以下操作:
- 名称填写
测试 Nacos 注册中心
。 - 发现类型选择
Nacos
。 - 填写主机地址和端口号。
- 名称填写
- 等待连接,确保注册中心连接状态为
健康
。 - 从左侧导航栏中选择 服务, 然后选择目标服务
Swagger Petstore
,然后单击立刻发布。 - 选择
测试网关组
,然后单击下一步。 - 在服务发布 对话框中, 执行以下操作:
- 新版本填写
1.0.0
。 - 如何找到上游选择
使用服务发现
。 - 服务注册中心选择
测试 Nacos 注册中心
,并选择好对应的命名空间、分组和服务名称。
- 新版本填写
验证 API
curl "http://127.0.0.1:9080/pet/1"
你应该会看到以下输出:
{
"name": "Dog",
"photoUrls": [
"https://example.com/dog-1.jpg",
"https://example.com/dog-2.jpg"
],
"id": 1,
"category": {
"id": 1,
"name": "pets"
},
"tags": [
{
"id": 1,
"name": "friendly"
},
{
"id": 2,
"name": "smart"
}
],
"status": "available"
}