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,用户可通过导航至 Settings菜单并选择 User Tokens.在 User Tokens设置页面中,您将找到特定部署的 API 地址。该地址是调用 API 所必需的。

单击 “+”图标,生成一个新的令牌。每个令牌的有效期为 3 months有效期,过期后必须重新生成。

使用 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。

要访问其余页面,请使用 "your_API_URL/rest/"。省略 rest 末尾的"/"不会重定向到 rest 页面。要获取您的 API URL,请访问 "设置 "中的 "用户令牌"。

这里有 "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

AI-LocalizedAI-localized
If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
功能可用性

您可使用的功能取决于您所选择的 Altium 解决方案 —— Altium DevelopAltium Agile(Agile Teams 或 Agile Enterprise 版本),或仍在有效订阅期内的 Altium Designer。

如果您在软件中未找到文中提及的功能,请联系 Altium 销售团队了解更多信息。

Content