Документация по REST API и Python API

На этой странице представлена справочная информация по REST API Requirements Portal. С помощью REST API можно получать и изменять данные из Requirements Portal, а также записывать данные обратно в Requirements Portal, обновляя информацию. Кроме того, API позволяет подключать другие приложения и интегрироваться с ними.

Доступ к REST API Requirements Portal с помощью токенов

Для доступа к REST API Requirements Portal можно создать токены на странице Settings – User Tokens (для перехода на нее нажмите значок  в правом верхнем углу, выберите Settings в появившемся меню, а затем User Tokens в списке на левой панели). На этой странице указан API address для вашего развертывания. Этот адрес необходим для выполнения вызовов API.

Нажмите значок + в правом нижнем углу страницы Settings – User Tokens, чтобы создать новый токен. Каждый токен действителен в течение 3 months; после истечения этого срока необходимо создать новый.

 

Для работы с API с использованием access_token необходимо добавить токен в заголовок Authorization HTTP-запроса в формате «Bearer ...», указав тип приложения «JSON».

curl --location 'http://deployment_name/rest/requirements/versions/search/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer hO2lwhLZsYOgXPNVI' \
--data '{
    "size": 10,
    "query_filters": {
        "object_id": 93
    }
}'

Либо, используя requests, можно передать токен доступа следующим образом:

access_token = 'Generated_Access_token'
api_url = 'Api_Address'

# workspace id and component type

workspace_id = 1
component_type_name = "CompA"

# Define headers with the access token
headers = {
    'Authorization': f'Bearer {access_token}',
    'Content-Type': 'application/json',  # Adjust content type as needed
}

# Make a GET request (you can use other HTTP methods like POST, PUT, etc.)
component_types_workspace = requests.get(api_url + "components/types/?workspace="+str(workspace_id), headers=headers)

Документация по Python API

Python API позволяет получать доступ к объектам в вашем развертывании и обновлять их с помощью кода на Python.

Установите необходимый пакет Python API с помощью pip:

pip install valispace

Импортируйте модуль API в скрипт Python:

import valispace

и выполните инициализацию с помощью

valispace = valispace.API()

Дополнительную информацию о возможностях и функциях API можно найти здесь. Пакет Python API распространяется по лицензии MIT, поэтому любой желающий может внести свой вклад в код, клонировав репозиторий GitHub.

Конечные точки

Пользователи могут обращаться к конечным точкам на странице Swagger. Чтобы открыть эту страницу, добавьте swagger/ в конец URL-адреса API, указанного на странице Settings – User Tokens. На странице отображается Django Swagger со всеми существующими конечными точками.

Для доступа к странице Swagger используйте your_API_URL/swagger/. Если не добавить / в конце, перенаправление на страницу не произойдет. URL-адрес API можно найти на странице Settings – User Tokens.

Также для доступа к странице можно использовать your_Workspace_URL/requirements/swagger/.

Доступны методы GET, POST, PUT, PATCH и DELETE.

Каждый объект в Requirements Portal имеет собственный идентификатор. Его можно использовать для поиска объекта и получения информации о нем. Идентификатор объекта можно увидеть непосредственно в Requirements Portal или в URL-адресе при выборе объекта в Requirements Portal.

Например, если вы используете метод GET для получения истории требования через Swagger, можно обратиться к следующей конечной точке, чтобы получить подробные сведения об истории требования.

GET /rest/requirements/{requirement-id}/history/

Получение истории требования с помощью GET
Получение истории требования с помощью GET

Аналогичным образом можно использовать методы для получения, обновления или отправки различных объектов, таких как блоки, теги, valis, textvalis, требования, спецификации, методы верификации и т. д. Найти нужные конечные точки можно на странице Swagger.

Фильтрация объектов по проектам

Помимо аутентификации, API позволяет использовать метод GET для получения объектов, таких как Valis или требования, в рамках развертывания. Если необходимо отфильтровать результаты по определенному проекту, можно воспользоваться возможностями фильтрации при условии, что конечная точка настроена соответствующим образом. Например, для получения требований, связанных с проектом 24, можно использовать следующий GET-запрос:

GET /rest/requirements/?project=24

Для наглядности эта возможность продемонстрирована в видео ниже.

Встроенные функции

В Requirements Portal текст, вводимый пользователем в текстовое поле, сохраняется на сервере в формате HTML. Формат HTML сохраняет форматирование и ссылки на valis или другие объекты. Поэтому при получении информации о требованиях импортированные данные могут содержать HTML-текст. Чтобы этого избежать, мы реализовали две функции, которые позволяют преобразовать содержимое HTML-полей в обычный текст либо сохранить HTML-форматирование, преобразовав valis в текст. Это функции clean_text и clean_html.

Функция clean_text

Функция clean_text преобразует все HTML-форматирование и ссылки на объекты в поле в обычный текст. При этом форматирование теряется. Например, списки, таблицы и цветовое оформление не сохраняются. Использовать эту функцию можно следующим образом.

 

В этом примере применяется фильтр по проекту 24 и запрашивается обычный текст для полей текста и обоснования. Результат этого действия показан ниже.

 

Требования после применения функции clean_text

Функция clean_html

Функция clean_html сохраняет форматирование текста, но преобразует ссылки и объекты, такие как valis, в текст. Если текст содержит списки, цвет фона, таблицы и другие элементы форматирования, они сохраняются.

 
Требования после применения функции clean_html

 

Часто задаваемые вопросы

Как найти нужную конечную точку?

Среди множества конечных точек с похожими именами бывает сложно сориентироваться. Если вы не уверены в назначении определенной конечной точки, рекомендуем обратиться за разъяснениями на страницу поддержки Altium. Также можно воспользоваться вкладкой «Сеть» в инструментах разработчика браузера, чтобы увидеть, к каким конечным точкам выполняются обращения при действиях в пользовательском интерфейсе приложения.

В качестве примера рассмотрим создание блока. В этом случае используется запрос «POST» к конечной точке «/rest/components». Это легко определить, просмотрев сетевую активность во время выполнения действия. Краткая демонстрация этого подхода приведена в видео ниже.

AI-LocalizedЛокализовано с помощью ИИ
Если вы обнаружили проблему, выделите текст/изображение и нажмитеCtrl + Enter, чтобы отправить нам свой отзыв.
Contents
Доступность функций

Доступные вам функции зависят от того, какое решение Altium вы используете: Altium Develop, Altium Agile Teams, Altium Agile Enterprise или Altium Designer (при активной подписке).

Если вы не видите описанную функцию в используемом вами программном обеспечении, свяжитесь с отделом продаж Altium, чтобы узнать больше.

Contents