• Русский
  • Connector API

    Содержание

    Overview

    После интеграции инструментов доступа внутри кластера может быть предоставлен RESTful API для текущего ConnectorClass, позволяющий удобно получать ресурсы внутри инструмента. Эти API будут единообразно экспонироваться через Connector API, что позволит пользователям получать ресурсы из инструмента, на который указывает текущий Connector.

    Система Connectors предоставляет полный набор механизмов расширения, упрощающих разработчикам расширение возможностей API ConnectorClass.

    API Connectors предлагает единый входной пункт для запросов. Когда клиент инициирует запрос ресурса для инструмента, на который указывает конкретный Connector, система перенаправляет запрос на соответствующий API-адрес ConnectorClass, который, в свою очередь, пересылает запрос на API-адрес инструмента для получения ресурсов внутри инструмента.

    Например:

    • Получение списка Reference конкретного репозитория под Git Connector.
    • Получение списка Tag конкретного репозитория артефактов под OIC Connector.

    API Definition

    API Address

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

    • namespace: пространство имён, в котором находится текущий Connector.
    • name: имя текущего Connector.
    • resource-name: имя запрашиваемого ресурса, которое можно уточнить в документации соответствующего ConnectorClass.

    Authentication and Authorization

    Аутентификация соответствует стандартам Kubernetes и осуществляется через механизмы аутентификации и авторизации Kubernetes. Пользователь, выполняющий запрос, должен иметь права на чтение соответствующего connector.

    При выполнении конечного запроса к инструменту для аутентификации будет использоваться Secret, указанный в Connector.

    Query Parameters

    Определяются конкретным API ConnectorClass.

    Pagination Information

    Указывается через параметры запроса.

    Parameter NameTypeRequiredDescription
    pageintfalseНомер страницы
    itemsPerPageintfalseКоличество элементов на странице

    Response Information

    При возврате списка структура будет следующей:

    Field NameTypeRequiredDescription
    listMetaListMetatrueМетаданные списка
    listMeta.totalItemsinttrueОбщее количество запрошенных ресурсов, используется клиентом для анализа пагинации
    items[]trueЭлементы данных списка; структура данных определяется API ConnectorClass
    {
        "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

    Разработчики могут расширять возможности API для ConnectorClass, предоставляя пользователям более богатые возможности получения ресурсов.

    См. ConnectorClass API Extension Specification.