用于将 API 推送到 IBM API Connect 中的 REST 端点

使用 REST 端点 (这是本地和云 Liberty 用户的中心位置) 将 API 可视化,调用和推送到 IBM® API Connect中。

将已部署的 REST 端点推送到 IBM API Connect

要将已部署的 REST 端点推送到 IBM API Connect中,必须调用新的 REST 端点 /ibm/api/docs/apiconnect,该端点由服务器配置中的 apiDiscovery-1.0 功能部件公开。 管理员和开发者可以使用 REST 端点向正在搜索 IBM API Connect 框架目录的任何企业开发者公开 Liberty 实例中的资产。

提供产品定义

所有 API 都由产品引用并从目录中公开。 因此,调用者提供了一个产品定义, Liberty 使用此定义来引用其 RESTful API ,并将生成的产品推送到 IBM API Connect中。 本主题中提供了样本产品。

Liberty 集合体的资产公开到 IBM API Connect 中

通过使用相应的 Liberty 集合体端点 /ibm/api/collective/docs/apiconnect,您可以使用单个 RESTful 触发器将 Liberty 集合体的所有资产公开到 IBM API Connect 中。 Liberty 集合体端点可以向连接到 API Connect的任何云开发者公开数千个 API。 请参阅 Liberty RESTful API 注册表 /ibm/api/explorer,以获取此端点的完整 Swagger 定义。

端点摘要

HTTP 请求方法:POST

URL: https://server:https_port/ibm/api/docs/apiconnect

必需的头

X-APIM-Authorization
用于连接到 API Connect 的凭证以下面两种格式显示:
  • usernamepassword
  • xyz,其中 xyz 是“用户名: 密码”的基本 64 位编码版本。

必需的查询参数

服务器
IBM API Connect 服务器的名称,以 https://开头。
Catalog
托管所生成产品的目录的名称。
Organization
调用者所属组织的名称。

可选的查询参数

apiRoot
这是一个多基数参数,用于准确地指定调用者想要推送到 API Connect 中的上下文根(例如 apiRoot=/myApp)。 缺省情况下, Liberty 包含除已知 Liberty 运行时 Web 应用程序捆绑软件以外的任何已部署应用程序。 当您想要对要公开的应用程序进行过滤时,此参数非常有用。
member ID(仅可用于集合体变体)
这是一个多基数参数,用于指定调用者想要从中公开资产的准确集合体成员的标识。 此标识由具有主机名the URLEncoded user dir和服务器名称的字符串组成,所有这些字符串都以逗号分隔,例如: myHost.com, %2Ftmp%2Fwlp%2Fusr, server1
Input body
YAML 或 JSON 代码中的产品定义。 请参阅以下 YAML 示例:
product: "1.0.0"
  info: 
    name: "pushed-product"
    title: "A Product that encapsulates Liberty APIs"
    version: "1.0.0"
  visibility: 
    view: 
      enabled: true
      type: "public"
      tags: 
        - "string"
      orgs: 
        - "string"
    subscribe: 
      enabled: true
      type: "authenticated"
      tags: 
        - "string"
      orgs: 
        - "string"
  apis: 
    liberty: 
      name: "liberty-api:1.0.0"
      x-ibm-configuration: 
        phase: "realized"
        testable: true
        enforced: true
        cors: 
          enabled: true
        assembly: 
          execute: 
            - 
              invoke: 
                target-url: "${gateway.target}"
                title: "Invocation"
                description: "Invoking back-end service"
  plans: 
    default: 
      title: "Default Plan"
      rate-limit: 
        hard-limit: false
        value: "100/hour"
      approval: false
  createdAt: "2016-04-18T20:33:22.937Z"
  createdBy: "string"