产品化服务
创建并管理 API 产品以将你的已发布服务产品化。每个 API 产品至少包含一个带有 OpenAPI 规范的已发布服务。
从已发布的 API7 网关服务创建 API 产品可以简化开发工作流程。对已发布服务的更改会自动反映在关联的 API 产品中,无需手动更新,从而节省大量时间和精力。开发者可以专注于消费 API,而无需关心底层服务配置或插件详情。
本教程将演示如何为内部开发者创建 API 产品,并概述订阅流程。
前置条件
- 已安装并激活带有门户许可证的 API7 企业版 v3.9.0 或更高版本。如果你使用的是试用许可证,则门户默认启用。请参阅安装 API7 企业版。
- 拥有一个正在运行的已发布服务。
添加 OpenAPI 规范
-
从侧边导航栏选择你的网关组的 已发布服务(Published Services),然后点击你想要修改的服务,例如,无版本的
httpbin服务。 -
在该已发布服务下,从侧边导航栏选择 OpenAPI 规范(OpenAPI Specification)。
-
点击 上传 OpenAPI 规范(Upload OpenAPI Specification)。
-
填写表单:
- 使用以下 OpenAPI 规范:
httpbin.yamlopenapi: 3.0.0
info:
title: HTTPBin
description: A simple HTTP request and response service.
version: 1.0.0
servers:
- url: https://httpbin.org
paths:
/ip:
get:
summary: Returns GET request information
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Get'
components:
schemas:
Get:
type: object
properties:
args:
type: object
headers:
type: object
origin:
type: string -
点击 保存(Save)。
-
为避免认证冲突,请不要在已发布服务中启用任何认证插件。API 产品的配置将处理认证。
备注
请确保 OpenAPI 规范与你的已发布服务相匹配:
- OpenAPI 规范中的
Servers字段对应于已发布服务中的Hosts字段。 - OpenAPI 规范中定义的每个
Path必须与路由中的特定path和method组合相匹配。
添加 API 产品
- 使用导航栏左上角的按钮切换到 API7 提供方门户(Provider Portal)。
- 点击 添加 API 产品(Add API Product),然后选择 从 API7 网关(From API7 Gateway)。
- 填写表单:
- 在 名称(Name) 字段中,输入
httpbin。 - 在 身份验证类型(Authentication Type) 字段中,选择
Key Authentication(密钥认证)、Basic Authentication(基本认证)或DCR。 - 关闭 订阅自动批准(Subscription Auto Approval) 开关。
- 在 API Hub 列表可见性(API Hub List Visibility) 字段中,选择
Visible to logged-in developers only(仅对登录的开发者可见)。 - 打开 未订阅开发者可查看 API 详情(Unsubscribed developers can view API details) 开关。
- 点击 添加关联的网关服务(Add Linked Gateway Service)。
- 在对话框中,执行以下操作:
- 在 网关组(Gateway Group) 字段中,选择你的目标网关组。例如,
default。 - 在 已发布服务(Published Services) 字段中,选择你的目标服务。例如,
httpbin。 - 点击 添加(Add)。
- 在 网关组(Gateway Group) 字段中,选择你的目标网关组。例如,
- 在 名称(Name) 字段中,输入
- 点击 添加(Add)。
- 默认情况下,新创建的 API 产品处于
草稿(draft)状态,并且在开发者门户上不可见。点击顶部的 操作(Actions) 按钮,然后选择 发布(Publish)。 - 点击 确认(Confirm)。
开发者请求订阅
- 使用开发者帐户登录到开发者门户。
- 从顶部导航栏选择 API Hub。
- 选择
httpbin。 - 浏览 API 详情以确保它们满足特定需求。
- 点击 立即订阅(Subscribe Now)。
- 等待批准。
提供方通过审批
- 从顶部导航栏选择 组织(Organization),然后选择 审批(Approvals)。
- 对特定请求点击 接受(Accept)。
开发者验证 API
- 使用开发者帐户登录到开发者门户。
- 从顶部导航栏选择 API Hub。
- 选择
httpbin。 - 点击 测试请求(Test Request)。
- 此时将预先选择 Auth Type(认证类型),并自动填写复制自开发者凭证的 API key 。如果 API 产品允许多种认证类型,则可以使用任何有效的凭证。
- 点击 发送(Send)。
- 收到
200响应。
故障排除
CORS 错误
当从浏览器测试或消费 API 产品时,你可能会遇到 CORS(跨源资源共享)错误。此问题通常在以下两种情况中出现:
- 使用 测试请求(Test Request) 功能从开发者门户进行测试
- 客户端 Web 应用程序从浏览器消费 API 产品
使用 Postman 等工具或通过直接 API 调用向网关发送请求时,不会发生此问题。浏览器强制执行 CORS 限制并发送预检 OPTIONS 请求,因此如果网关路由不允许 OPTIONS 方法或未启用 CORS 插件,浏览器将报告 CORS 错误。
若要解决此问题,请使用以下方法之一:
- 在路由级别,配置 CORS 插件 并启用
OPTIONSHTTP 方法。 - 全局配置 CORS 插件。全局配置该插件后,CORS 和预检
OPTIONS请求将被自动处理,即使个别路由没有明确允许OPTIONS方法。