Rest API 和 Python API 文档
本文档为 Requirements & Systems Portal 的 REST API 提供参考。使用 REST API,用户可以从 Requirements & Systems Portal 获取和修改数据,甚至将数据写回 Requirements & Systems Portal,从而更新信息。此外,这还为您提供了与其他应用程序或应用程序连接/集成的可能性。
使用令牌访问 Requirements & System Portal 中的 Rest API
要访问 Altium A365 上 Requirements & Systems Portal 应用程序中的 REST API,用户可通过导航至
单击
使用 access_token 访问 API 时,必须在授权 HTTP 请求头中使用应用程序类型 "JSON "通过 "Bearer ..." 添加令牌。
curl --location 'http://deployment_name/rest/requirements/versions/search/' \
--header'Content-Type:application/json'(内容类型:应用程序/json
--header 'Authorization:Bearer hO2lwhLZsYOgXPNVI' \
--data '{
"size":10,
"query_filters":{
"object_id":93
}
}'
或使用请求发送访问令牌,如下所示
access_token = 'Generated_Access_token' (生成的访问令牌
api_url = 'Api_Address' 地址
# 工作区 ID 和组件类型
工作区 ID = 1
component_type_name = "CompA"
# 用访问令牌定义标头
headers = {
'Authorization': f'Bearer {access_token}'、
Content-Type': 'application/json', # 根据需要调整内容类型
}
# 发送 GET 请求(也可使用其他 HTTP 方法,如 POST、PUT 等)
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 模块:
导入 valispace
并用
valispace = valispace.API()
有关 API 功能和函数的更多信息,请访问此处。python API 软件包采用 MIT 许可,这意味着任何人都可以通过克隆 GitHub 代码库来贡献代码。
端点
用户可以访问 rest 页面上的端点。要访问该页面,请在 API URL 末尾添加 "rest/",该 URL 可在 "需求与系统 "门户和 "设置 "以及 "用户令牌 "中找到。休息页面会显示包含所有现有端点的 Django Swagger。

这里有 "GET"、"POST"、"PUT"、"PATCH "和 "DELETE "方法。
Requirements & Systems Portal 中的每个对象都有自己的 ID;您可以使用它来查找和检索对象信息。对象 ID 可以直接在 Requirements & Systems Portal 中看到,也可以在点击 Requirements & Systems Portal 中的对象时在 URL 中看到。
例如,如果使用 get 函数通过其余部分获取 Vali 信息,则可使用以下端点获取 Vali 详情。
GET /rest/valis/{vali-id}/
使用 GET 获取vali 信息同样,你也可以使用这些方法来检索/更新或发布不同的对象,如块、标签、valis、文本valis、需求、规范、验证方法等。您可以在其余页面搜索端点。
过滤项目对象
除验证外,您还可以使用 "GET "方法在部署中检索 Valis 或 Requirements 等对象。如果需要根据特定项目过滤结果,只要对端点进行相应配置,就可以利用过滤功能实现这一目的。例如,要检索与项目 24 相关联的需求,可以使用以下 GET 请求:
GET /rest/requirements/?project=24
为了更清楚地了解这一功能,下面的视频对其进行了演示。
内置功能
在需求与系统门户网站中,每当用户在文本字段中输入文本时,该文本就会以 HTML
格式保存在后台。HTML 格式保留了对 Valis 或其他对象的格式化引用。因此,如果您正在获取需求信息,您可能会在导入时得到 HTML 文本。为了避免这种情况,我们实现了两个函数,用于将 HTML 字段转换为纯文本或 HTML 格式,并将valis 转换为文本。这两个函数是 clean_text 和 clean_html。
清洁文本函数
Clean text 函数将字段中的所有 HTML 格式和对象引用转换为文本。但在这种情况下,格式也会丢失。例如,如果有列表、表格或颜色,格式也会丢失。使用方法如下。
在这里,我正在为项目 24 设置过滤器,并要求为字段的文本和理由提供纯文本。该特定操作的输出结果如下。
使用 Clean_text 函数后的要求Clean_html 函数
Clean_html 函数会保留文本的格式选项,但会将引用/对象(如 valis)转换为文本。如果文本中包含格式选项,如列表、背景颜色、表格等,则会保留这些信息。
使用 clean_html 函数后的要求
常见问题:
如何找到正确的端点?
在名称相似的众多端点中进行导航可能会造成混乱。如果您对某个特定端点感到不确定,我们建议您联系Altium 支持页面以获得澄清。或者,您也可以利用浏览器的 "网络 "功能,观察在软件前端执行操作时会触发哪些端点。
举例来说,创建一个块的过程。在这种情况下,相关的端点可以被识别为向"/rest/components "发出的 "POST "请求,通过检查操作过程中的网络活动,可以很容易地发现这一信息。下面的视频简要演示了这种方法。
如何获取/发布需求的验证方法(VM)和模块?
需求与系统门户中的一个需求可与多个验证方法(VM)相关联,每个验证方法(VM)又可附加多个区块。支持各种验证方法类型,包括规则、测试、检查、分析、审查和自定义 VM。每种验证方法类型都有自己的唯一标识符(ID)。
您可以使用相应的端点来检索这些验证方法类型的 ID。
GET /rest/requirements/verification-methods/
例如,要获取项目 ID 24 的验证方法类型 ID,可以使用以下端点
GET /rest/requirements/verification-methods/?project=24
项目的验证方法列表
要获取与特定需求相关联的验证方法,Requirements & Systems Portal 会创建一个名为 "Requirement-VMS "的专用对象。该对象有其唯一标识符(ID),可通过以下端点访问:
GET /rest/requirements/requirement-vms/
例如,编号为 2165 的 SPC-002 要求有一种类型为 "规则 "的验证方法,而 requirment-vms 的对象 ID 是 2203。

如果我们使用端点"/rest/requirements/requirement-vms/2203
Requirment-vms 的键和值检查 "Requirement-vms "对象后,您会发现方法 ID "20 "对应的是 "Rules "验证方法,这与之前获得的验证方法类型列表一致。在将此信息纳入脚本时,请确保将方法 ID 映射到相应的验证方法类型。
此外,在 "Requirement-vms "对象中还引用了两个组件-vms。这些组件-vm ID 代表附加到需求验证方法的块。当与这些块进行编程交互时,请在脚本中相应地使用这些 ID。
访问组件虚拟机的端点是
GET /rest/requirements/component-vms/{id}
在获取组件-vms 的详细信息时,组件字段会提供区块 ID,通过该 ID 可以映射区块名称。
组件-vms