第 2 章 使用 API Designer 设计和开发 API 定义
您可以使用 API Designer 设计和开发符合 OpenAPI 2.0 规格的 REST API 定义。
先决条件
- 您创建了 OpenShift 项目。
- 您已将 API Designer 服务添加到 OpenShift 项目中。
2.1. 创建 REST API 定义
下列步骤描述了如何创建 REST API 定义。
- 您可以从 OpenShift 上的 Fuse Online 或 Fuse 访问 API Designer 用户界面。
- 对于 OpenShift 上的 Fuse,API Designer 是无状态的,这意味着它不会在 OpenShift 会话之间保存您的工作。您需要在会话之间将 API 保存到本地文件系统中。
关于示例
Task Management API 示例模拟一个简单的 API,而销售顾问可能会用来跟踪在与客户联系交互时所需的任务。"to-do"任务示例可能是"为新联系人创建帐户"或"现有联系人的订单"。要实现 Task Management API 示例,您需要创建两个路径 - 一个用于任务,另一个用于特定任务。然后,您可以定义操作来创建任务,检索所有任务或特定任务,更新任务,以及删除任务。
先决条件
-
您知道您要创建的 API 的端点。对于任务管理 API 示例,有两个端点:
/
setuptools 和/setuptools/{id}
。 - 对于 OpenShift 上的 Fuse,您只创建了 OpenShift 项目,并将 API Designer 服务添加到 OpenShift 项目中。
流程
如果您使用 Fuse Online,请跳至第 2 步。
如果您在 OpenShift 中使用 Fuse:
- 登录您的 OpenShift Web 控制台,然后打开包含 API Designer 的项目。
在应用程序列表中,点 API Designer 的 URL,例如
https://apidesigner-myproject.192.168.64.43.nip.io
为 API Designer 打开一个新的浏览器窗口或标签页。
注意因为 API Designer 是 Apicurio Studio 开源项目的 "亮点"版本,所以 "Apicurio" 显示在 API Designer 界面中。
- 单击 New API。这会打开新的 API 页面。
更改 API 名称:
- 将光标悬停在名称上,然后点显示的编辑图标( )。
- 编辑名称。例如,键入 Task API。
- 确认名称更改。
(可选):
- 添加您的联系信息(姓名、电子邮件地址和 URL)。
- 选择许可证。
- 定义标签。
- 定义安全方案。
- 指定安全要求。
定义 API 的每个端点的相对路径。字段名称必须以斜杠(/)开头。
对于 Task Management API 示例,创建两个路径:
-
任务的路径:
/setuptools
一个特定任务的路径,按 ID:
/ covers/{id}
-
任务的路径:
指定任何路径参数的类型。
对于示例
id
参数:在 Paths 列表中,单击
/cleanup/{id}
。id 参数会出现在 PATH PARAMETERS 部分中。
- 点 Create。
- 对于描述,type: 要查找的任务 ID。
对于类型,将 整数 选为 32 位整数。
在 Data Types 部分中,为 API 定义可重复使用的类型。
- 单击 Add a data type。
- 在 Add Data Type 对话框中输入名称。对于 Task Management API 示例,键入 Todo。
另外,您可以提供一个示例,API Designer 创建数据类型的 schema。然后,您可以编辑生成的模式。
对于 Task Management API 示例,从以下 JSON 示例开始:
{ "id": 1, "task": "my task", "completed": false }
- 另外,您可以选择使用数据类型创建 REST 资源。
点 Save。如果您提供了示例,API Designer 从示例中生成一个模式:
- 另外,您可以添加编辑模式属性并添加新模式属性。
对于 Task Management API 示例,创建另一个名为 Task 的数据类型,其名为 string 的任务。
对于每个路径,定义操作(GET、PUT、POST、DELETE、OPTIONS、HEAD 或 PATCH)。
对于 Task Management API 示例,请按照下表所述定义操作:
表 2.1. 任务管理 API 操作 路径 操作 描述 Request(请求) 响应 /todo
POST
创建新任务。
request Body type: Task
状态代码: 201
Description: Task created
响应正文: Todo 类型
/todo
GET
获取所有任务。
Not applicable
状态代码: 200
描述: 任务已删除
状态代码: 400
Description: Task not deleted
/todo/{id}
GET
按 ID 获取任务。
Not applicable
状态代码: 200
描述 : 为 ID 找到的任务
响应正文: Todo 类型
/todo/{id}
UPDATE (更新)
按 ID 更新任务。
request Body type: Task
状态代码: 200
描述: 完成
状态代码: 400
Description: Task not updated
/todo/{id}
DELETE
按 ID 删除任务。
Not applicable
状态代码: 200
描述: 任务已删除
状态代码: 400
Description: Task not deleted
- 解决任何问题,如 第 2.2 节 “解决 API 设计程序中的问题” 所述。
对于 OpenShift 上的 Fuse,点 Save As,然后选择 JSON 或 YAML 格式来保存您的 API 规格。
JSON 或 YAML 文件下载到您的本地下载文件夹中。默认文件名为
openapi-spec
,带有适当的文件扩展名。
其他资源
- 有关 OpenAPI 2.0 规格的详情,请参考: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md