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,其中包含所有现有端点。
可用的方法包括 GET、POST、PUT、PATCH 和 DELETE。
Requirements Portal 中的每个对象都有自己的 ID。您可以使用此 ID 查找并检索对象本身的信息。您可以直接在 Requirements Portal 中查看对象 ID,也可以在点击 Requirements Portal 中的对象后,从 URL 中查看。
例如,如果您通过 Swagger 使用 GET 函数获取需求历史信息,可以使用以下端点获取需求历史详情。
GET /rest/requirements/{requirement-id}/history/
同样,您可以使用这些方法检索、更新或提交不同的对象,例如模块、标签、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”请求。通过查看执行此操作时的网络活动,即可轻松识别此信息。下方的简短视频演示了这一方法。



