REST API 和 Python API 文档

本页提供 Requirements Portal REST API 的参考信息。使用 REST API,您可以获取和修改 Requirements Portal 中的数据,甚至将数据写回 Requirements Portal,从而更新信息。此外,您还可以通过它连接或集成其他应用程序。

使用令牌访问 Requirements Portal 中的 REST API

要访问 Requirements Portal 中的 REST API,您可以在 Settings – User Tokens 页面上生成令牌 (点击右上角的  图标,在显示的菜单中选择 Settings,然后从左侧窗格的列表中选择 User Tokens,即可访问该页面)。在此页面上,您可以找到特定部署的 API address。调用 API 时需要使用此地址。

点击 Settings – User Tokens 页面右下角的 + 图标,即可生成新令牌。每个令牌的有效期为 3 months,过期后必须重新生成。

 

使用 access_token 调用 API 时,需要在 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 代码访问和更新部署中的对象。

使用 pip 安装所需的 Python API 包:

pip install valispace

在 Python 脚本中导入 API 模块:

import valispace

然后使用以下代码进行初始化

valispace = valispace.API()

有关 API 功能和函数的更多信息,请参阅 此处。Python API 包采用 MIT 许可证,这意味着任何人都可以通过克隆 GitHub 仓库来为代码做出贡献。

端点

用户可以在 Swagger 页面上访问端点。要访问此页面,请在 API URL 的末尾添加 swagger/,该 URL 可在 Settings – User Tokens 页面上找到。此页面显示 Django Swagger,其中包含所有现有端点。

要访问 Swagger 页面,请使用 your_API_URL/swagger/。如果省略末尾的 /,则不会重定向到该页面。您可以在 Settings – User Tokens 页面上获取 API URL。

或者,使用 your_Workspace_URL/requirements/swagger/ 访问该页面。

可用的方法包括 GET、POST、PUT、PATCH 和 DELETE。

Requirements Portal 中的每个对象都有自己的 ID。您可以使用此 ID 查找并检索对象本身的信息。您可以直接在 Requirements Portal 中查看对象 ID,也可以在点击 Requirements Portal 中的对象后,从 URL 中查看。

例如,如果您通过 Swagger 使用 GET 函数获取需求历史信息,可以使用以下端点获取需求历史详情。

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

使用 GET 检索需求历史信息
使用 GET 检索需求历史信息

同样,您可以使用这些方法检索、更新或提交不同的对象,例如模块、标签、valis、textvalis、需求、规范、验证方法等。您可以在 Swagger 页面上搜索端点。

按项目筛选对象

除了身份验证外,您还可以使用 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 支持页面 联系我们,以获取说明。或者,您可以使用浏览器的“网络”功能,观察在软件前端执行操作时触发了哪些端点。

以创建模块的过程为例。在这种情况下,可以确定关联的端点是向“/rest/components”发送的“POST”请求。通过查看执行此操作时的网络活动,即可轻松识别此信息。下方的简短视频演示了这一方法。

AI-LocalizedAI 翻译
如您发现任何问题,请选中相关文本/图片,并按 Ctrl + Enter 键向我们提交反馈。
Contents
功能可用性

您可使用的功能取决于您所采用的 Altium 解决方案——Altium Develop、Altium Agile Teams、Altium Agile Enterprise,或 Altium Designer(在有效订阅期内)。

如果您在实际软件中未看到文档中介绍的某项功能, 请联系 Altium Sales 了解更多信息。

Contents