Connector API

目录

Overview

在集群内集成访问工具后,可以为当前 ConnectorClass 提供一个 RESTful API,方便获取工具内的资源。这些 API 将统一通过 Connector API 暴露,允许用户从当前 Connector 指向的工具中获取资源。

Connectors 系统提供了一整套扩展机制,使开发者更容易扩展 ConnectorClass 的 API 能力。

Connectors API 提供了统一的请求入口。当客户端发起针对特定 Connector 指向工具的资源请求时,系统会将请求转发到对应 ConnectorClass 的 API 地址,进而转发到工具的 API 地址以获取工具内的资源。

例如:

  • 获取 Git Connector 下某个仓库的 Reference 列表。
  • 获取 OIC Connector 下某个制品仓库的 Tag 列表。

API Definition

API 地址

/connectors/v1alpha1/namespaces/{namespace}/connectors/{name}/resources/{resource-name}

  • namespace:当前 Connector 所在的命名空间。
  • name:当前 Connector 的名称。
  • resource-name:请求的资源名称,可通过查阅对应 ConnectorClass 的文档理解。

认证与授权

认证遵循 Kubernetes 认证标准,通过 Kubernetes 的认证和授权机制完成。请求用户必须对对应的 connector 具备读取权限。

向工具发起最终请求时,将使用 Connector 指定的 Secret 信息进行认证。

查询参数

由具体 ConnectorClass API 决定。

分页信息

通过查询参数指示。

参数名类型是否必填说明
pageint页码
itemsPerPageint每页条目数

响应信息

返回列表时,结构如下:

字段名类型是否必填说明
listMetaListMeta列表的元数据
listMeta.totalItemsint请求资源的总数,客户端可据此分析分页信息
items[]列表中的数据项;数据结构由 ConnectorClass API 决定
{
    "listMeta":{
        "totalItems":0
    },
    "items": [
        {

        }
    ]
}

当响应非 200 时,返回的数据结构应符合 k8s status

例如:

{
    "status": "Failure",
    "message": "api address of connectorclass 'git-noapi' is not resolved",
    "reason": "BadRequest",
    "code": 400,
    "details": null
}

字段定义和枚举值与 k8s status 保持一致。

ConnectorClass API Extension Specification

开发者可以扩展 ConnectorClass 的 API 能力,为用户提供更丰富的资源获取能力。

参见 ConnectorClass API Extension Specification