Rest APIとPython APIのドキュメント
このドキュメントでは、要件 & システム ポータルの REST API について説明します。REST API を使用す る と 、 ユーザーは要件 & シ ス テ ム ポータルか ら デー タ を取得 し て変更 し た り 、 デー タ を要件 & シ ス テ ム ポータルに書き戻 し て情報を更新す る こ と も で き ます。さ ら に、 こ れに よ り 他のアプ リ ケーシ ョ ンやアプ リ ケーシ ョ ン と 接続/ 統合す る 可能性があ り ます。
トークンを使用した要件 & システム ポータルの Rest API へのアクセス
Altium A365 の Requirements & System Portal アプリケーションで REST API にアクセスするには、ユーザーはトークンを生成する必要があります。
新しいトークンを生成するには
access_tokenを使用してAPIを利用する場合は、Authorization HTTPリクエスト・ヘッダにアプリケーション・タイプ "JSON "を使用した "Bearer ... "を介してトークンを追加する必要があります。
curl --location 'http://deployment_name/rest/requirements/versions/search/' \
--ヘッダ「Content-Type: application/json
--ヘッダー 'Authorization:ヘッダ 'Authorization: Bearer hO2lwhLZsYOgXPNVI'
--データ '{
"size":10,
"query_filters":{
"object_id":93
}
}'
または、リクエストを使って、次のようにアクセストークンを送ることができます。
access_token = '生成されたアクセストークン'
api_url = 'アプリアドレス'
# ワークスペースIDとコンポーネントタイプ
ワークスペースID = 1
コンポーネントタイプ名 = "CompA"
# アクセストークンでヘッダーを定義する
headers = {
'Authorization': f'Bearer {access_token}'、
'Content-Type': 'application/json', # 必要に応じてコンテントタイプを調整する。
}
# GETリクエストを行う(POST、PUTなどの他のHTTPメソッドを使用することもできます)
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
pythonスクリプトでAPIモジュールをインポートします:
インポート valispace
をインポートし
valispace = valispace.API()
APIの機能と関数についての詳細は、こちらをご覧ください。Python APIパッケージはMITライセンスの下でライセンスされています。つまり、誰でもGitHubリポジトリをクローンすることでコードに貢献することができます。
エンドポイント
ユーザーはrestページからエンドポイントにアクセスできる。このページにアクセスするには、 Requirements & Systems Portal の und Settings と "User Tokens" にある API URL の末尾に "rest/" を追加します。rest ページには、既存のエンドポイントをすべて含む Django Swagger が表示されます。

GET"、"POST"、"PUT"、"PATCH"、"DELETE "メソッドがあります。
この ID を使用して、オブジェクト情報自体を検索および取得できます。オブジェクト ID は、要件 & システム ポータルで直接確認するか、要件 & システム ポータルでオブジェクトをクリックしたときの URL で確認できます。
たとえば、get 関数を使用して残りの関数から vali 情報を取得する場合、次のエンドポイントを使用して vali の詳細を取得できます。
GET /rest/valis/{vali-id}/
GETを使ってバリの情報を取得する同様に、ブロック、タグ、valis、textvalis、要件、仕様、検証方法など、さまざまなオブジェクトの取得/更新や投稿にもメソッドを使用できます。残りのページでエンドポイントを検索できます。
プロジェクトのオブジェクトのフィルタリング
認証に加えて、"GET "メソッドを使用して、デプロイメント内のバリスや要件などのオブジェクトを取得できます。特定のプロジェク トに基づいて結果をフィルタする必要がある場合は、エンドポイントが適切に構成されていれば、 フィルタリング機能を活用してこれを実現できます。たとえば、プロジェクト 24 に関連付けられた要件を取得するには、次の GET 要求を使用できます:
GET /rest/requirements/?project=24
この機能をより明確に理解するために、以下のビデオでデモンストレーションを行います。
組み込み機能
要件システム ポータルでは、ユーザーがテキスト フィールドにテキストを入力するたびに、そのテキストが HTML 形式でバックエンドに保存されます。
形式で保存されます。HTML 形式では、 値やその他のオブジェクトへの書式参照が保持されます。そのため、要件情報を取得する場合、インポートに HTML テキストが含まれる可能性があります。これを回避するために、HTMLフィールドを単なるテキストに変換したり、valisをテキストに変換したHTMLフォーマットに変換したりするのに便利な関数を2つ実装しました。これらの関数はclean_textとclean_htmlです。
clean_text関数
clean_text関数は、フィールド内のすべてのHTML書式とオブジェクト参照をテキストに変換します。しかしこの場合、書式も失われます。例えば、リスト、テーブル、カラーがある場合、書式も失われます。以下のように使用できます。
ここでは、プロジェクト24のフィルタを実行し、フィールドのテキストと根拠をクリーンテキストにするよう求めています。出力はこの特定のアクションに対してこのようになります。
Clean_text関数使用後の要件clean_html関数
clean_html関数はテキストの書式オプションを保持し、valisのような参照/オブジェクトをテキストに変換します。テキストにリスト、背景色、表などの書式オプションが含まれている場合、この情報は保持されます。
clean_html関数使用後の要件
よくある質問
正しいエンドポイントを見つけるには?
似たような名前の多数のエンドポイントをナビゲートすると、混乱することがあります。特定のエンドポイントが不明な場合は、アルティウムのサポートページにお問い合わせください。また、ブラウザの "ネットワーク "機能を利用して、ソフトウェアのフロントエンド内でアクションを実行する際にどのエンドポイントがトリガーされるかを観察することもできます。
例として、ブロックを作成するプロセスを考えてみましょう。この場合、関連するエンドポイントは "/rest/components" への "POST" リクエストであることがわかります。このアプローチの簡潔なデモを以下のビデオでご覧ください。
要件の検証メソッド(VM)とブロックを取得/投稿する方法は?
Requirements & Systems Portal の要件は、 複数の検証手法 (VM) と 関連付ける こ と がで き、 その各検証手法には、 複数のブ ロ ッ ク を添付す る こ と がで き ます。ルール、テスト、検査、分析、レビュー、カスタム VM など、さまざまな検証手法のタイプがサポートされています。各検証方法のタイプは、独自のIDによって一意に識別される。
適切なエンドポイントを使用して、これらの検証方法タイプのIDを取得することができる。
GET /rest/requirements/verification-methods/ を使用します。
たとえば、プロジェクト ID 24 の検証方法タイプの ID を取得するには、次のエンドポイントを使用できます。
GET /rest/requirements/verification-methods/?project=24
プロジェクトの検証方法リスト
特定の要件にリンクされている検証方法を取得するために、要件システム ポータルでは、"Requirement-VMS" という専用のオブジェクトが作成されます。このオブジェクトには一意の識別子(ID)があり、次のエンドポイントからアクセスできます:
次のエンドポイントからアクセスできます。
たとえば、ID 2165 の SPC-002 という要件には、タイプ "Rules" の検証メソッドが 1 つあり、requirment-vms のオブジェクト ID は 2203 です。

エンドポイント "/rest/requirements/requirement-vms/2203
requirment-vmsのキーと値Requirement-vms」オブジェクトを確認すると、メソッド ID「20」が、先に取得した検証メソッドタイプのリストにある「Rules」検証メソッドに対応していることがわかります。この情報をスクリプトに組み込む場合は、メソッド ID をそれぞれの検証メソッド タイプに確実に対応付けます。
さらに、「Requirement-vms」オブジェクト内には、2 つの component-vms への参照があります。こ れ ら の component-vm ID は、 要件検証 メ ソ ッ ド に接続 さ れてい る ブ ロ ッ ク を表 し ます。こ れ ら のブ ロ ッ ク と プログラムで対話す る 場合は、 ス ク リ プ ト 内で こ れ ら の ID を適宜活用 し て く だ さ い。
component-vms にア ク セ スす る エ ン ド ポ イ ン ト は次の よ う にな り ます。
GET /rest/requirements/component-vms/{id} です。
component-vms の詳細を取得すると、component フィールドにブロック ID が表示されます。
コンポーネント-vms