搜索

第 3 章 使用 API Designer 设计和开发 API 定义

download PDF

您可以使用 API Designer 设计并开发一个符合 OpenAPI 3 (或 2)规范的 REST API 定义。

先决条件

  • 您创建了 OpenShift 项目。
  • 您可以将 API Designer 服务添加到 OpenShift 项目中。

3.1. 在 API Designer 中创建 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 的端点。对于 Task Management API 示例,有两个端点: /HEKETI/InventoryService/{id}
  • 对于 OpenShift 上的 Fuse,您创建了 OpenShift 项目,并将 API Designer 服务添加到 OpenShift 项目中。

流程

  1. 如果您使用 Fuse Online,请跳至第 2 步。

    如果您在 OpenShift 中使用 Fuse:

    1. 登录您的 OpenShift Web 控制台,然后打开包含 API Designer 的项目。
    2. 对于 OpenShift 4.x,选择 Topology,然后单击 apicurito-service 图标的 URL 链接。

      对于 OpenShift 3.11,从应用程序列表中点击 API Designer 的 URL,例如 https://apidesigner-myproject.192.168.64.43.nip.io

      为 API Designer 打开一个新的浏览器窗口或标签页。

      注意

      因为 API Designer 是 Apicurio Studio 开源项目的 "亮点"版本,"Apicurio"显示在 API Designer 界面中。

  2. 单击 New API。此时会打开一个新的 API 页面。

    默认情况下,API Designer 使用 OpenAPI 3 规格。如果要使用 OpenAPI 2 规格,点 New API 按钮旁边的箭头,然后选择 OpenAPI 2

    注意

    如果您根据 OpenAPI 2 规格打开 API,您可以使用 API Designer 的 Convert to OpenAPI 3 选项转换 API 以符合 OpenAPI 3 规格。

  3. 更改 API 名称:

    1. 将光标悬停在名称上,然后点出现的编辑图标( 28 )。
    2. 编辑名称。例如,键入 Task API
    3. 点勾选标记图标确认名称更改。
  4. (可选):

    • 提供版本号和描述。
    • 添加您的联系信息(名称、电子邮件地址和 URL)。
    • 选择许可证。
    • 定义标签。
    • 定义一个或多个服务器。
    • 配置安全方案。
    • 指定安全要求。
  5. 定义 API 的每个端点的相对路径。字段名称必须以斜杠(/)开头。

    对于 Task Management API 示例,创建两个路径:

    • 任务的路径: / libpmem
    • 按 ID: /wagon/{id}的特定任务的路径

      apidesigner 路径
  6. 指定任何路径参数的类型。

    对于 id 参数示例:

    1. Paths 列表中,单击 /bulk/{id}

      id 参数会出现在 PATH PARAMETERS 部分中。

    2. Create
    3. 对于描述,键入: 要查找的任务 ID。
    4. 对于类型,选择 integer 作为 32 位整数

      apidesigner 参数
  7. Data Types 部分中,为 API 定义可重复使用的类型。

    1. 单击 Add a data type
    2. Add Data Type 对话框中输入名称。对于 Task Management API 示例,键入 Todo
    3. 另外,您还可以提供一个示例,API Designer 从哪个 API Designer 创建数据类型的 schema。然后您可以编辑生成的模式。

      对于 Task Management API 示例,以以下 JSON 示例开始:

      {
          "id": 1,
          "task": "my task",
          "completed": false
      }
    4. 另外,您可以选择使用数据类型创建 REST 资源。
    5. 点击 Save。如果您提供了一个示例,API Designer 从示例中生成一个模式:

      apidesigner datatype schema
  8. 另外,您可以添加模式属性并添加新属性。
  9. 对于 Task Management API 示例,创建另一个名为 Task 的数据类型,其中包含一个名为 task 的属性,类型为 string

    apidesigner 另一种类型
  10. 对于每个路径,定义操作(GET、PUT、POST、DELETE、OPTIONS、HEAD 或 PATCH)。

    对于 Task Management API 示例,请按照下表所述定义操作:

    表 3.1. 任务管理 API 操作
    路径操作描述请求正文响应

    /todo

    POST

    创建新任务。

    介质类型: application/json Data Type: Task

    • 状态代码: 201 Description: 任务创建

      响应正文: Media Type: application/json Data Type: Todo

    /todo

    GET

    获取所有任务。

    Not applicable

    • 状态代码: 200 Description : 任务列表

    /todo/{id}

    GET

    按 ID 获取任务。

    Not applicable

    • Status Code: 200 Description: Task found for ID Response Body: Media Type: application/json Data type: Task
    • Status Code: 404 Description: No tasks with provided identifier found.

    /todo/{id}

    PUT

    按 ID 更新任务。

    Request Body type: Task

    • Status Code: 200 Description: Completed
    • Status Code: 400 Description: Task not updated

    /todo/{id}

    DELETE

    按 ID 删除任务。

    Not applicable

    • Status Code: 200 Description: Task deleted
    • Status Code: 400 Description: Task not deleted
  11. 解决任何问题,如 解决 API Designer 中的验证问题 中所述。
  12. 对于 OpenShift 上的 Fuse,点 Save As 保存您的 API 规格,然后选择 JSONYAML 格式。

    JSON 或 YAML 文件下载到您的本地下载文件夹中。默认文件名是 openapi-spec,带有适当的文件扩展名。

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.