メタデータの取得例
このセクションでは、エンティティとフィールドのメタデータにアクセスしてALM Octane REST APIを操作する方法の例を示します。
ユーザーストーリーエンティティのメタデータを取得する
リクエスト
GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/metadata/entities?query="name EQ 'story'"
応答
{ "data": [ { "features": [ { "methods": [ "DELETE", "POST", "GET", "PUT" ], "name": "rest", "url": "stories" }, { "name": "mailing", "url": "mails" }, { "name": "phases" }, { "name": "subtype_of", "type": "work_item" }, { "parent_types": [ "feature", "work_item_root" ], "max_depth": 4, "root": { "type": "work_item_root", "id": "1001" }, "name": "hierarchy", "child_types": [] }, { "name": "user_defined_fields" }, { "name": "business_rules" }, { "name": "comments", }, { "name": "attachments", } ], "name": "story", "description": null, "label": "Story", "type": "entity_metadata" } ], "total_count": 1 }
応答の説明
この例をワークスペースレベルで見てみましょう。この例から、次のことがわかります。
パイプラインのフィールドメタデータを取得する
パイプラインのワークスペースレベルの例を次に示します。
リクエスト
GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/metadata/fields?query="entity_name EQ 'pipeline'"
結果の説明
説明 | メタデータ |
---|---|
パイプラインフィールドには、ID、パイプライン名、作成時間、パイプラインのルートジョブ、バージョンスタンプ、作成者、および現在のリリースが含まれます。 | "name": "id", "name": "name", "name": "creation_time", "name": "version_stamp", "name": "author", "name": "last_modified", "name": "current_release", |
以下を含む (ただしこれらに限定されない) 各パイプラインフィールドに関する情報を表示できます。
|
{ "entity_name": "pipeline", "description": "", "label": "Creation time", "name": "creation_time", "field_type": "date_time", }, |
フィールドがエンティティコレクションを参照していることを示します。 参照情報: Reference
|
"field_type_data": { "multiple": false, "targets": [ { "type": ""workspace_user" } ] }, |
フィールドがサニタイズをサポートしている場合。 REST API出力サニタイズは、リクエストによって返されたデータを削除またはエンコードします。これにより、セキュリティリスクが軽減されます。参照情報: Sanitization 有効なサニタイズタイプは次のとおりです。
|
{ "sanitization": "NONE" }, |
フィールドが履歴目的の追跡などの追加フィーチャー /フィーチャーをサポートしている場合。この場合、機能はauditableと呼ばれます。 | "field_features": [ { "name": "auditable" } ], |
フィールドが最終的な場合。 エンティティの作成時にのみ、値をフィールドに指定できます。その後、フィールドは読み取り専用になります。 Authorフィールドは、finalをtrueに設定するのに適した候補です。 参照情報: Final |
{
"final": true
},
|
パイプラインフィールドが次のいずれかであるかどうかを判断できます。
|
{ "filterable": true, "editable": false, "label": "Creation time", "sortable": true, "is_user_defined": false, "required": false, "accessible_via_business_rules": true, "unique": false, "name": "creation_time", "groupable": false, "visible_in_ui": true }, |
エンティティに必要なフィールドを知る
REST APIを使用して新しいエンティティを作成する場合、どのフィールドが必須であるかを事前に知っておくと役立ちます。required属性を使用します。
GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/metadata/fields?query="entity_name EQ 'defect'; required EQ 'true'"
GET操作で標準設定で返されないフィールドを確認する
標準設定で返されないフィールドのリストを表示するには、フィールドメタデータをクエリして、returned_by_default属性を確認します。
GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/metadata/fields?query="returned_by_default EQ false"
エンティティフィールドに許可されている値を取得する
一部のエンティティはリストに関連付けられています。たとえば、実行はステータスに関連付けられています。ストーリー、不具合、要件などの他のエンティティは、フェーズに関連付けられています。
Skippedは、自動テスト実行では有効なステータスである可能性がありますが、手動テスト実行では有効ではありません。
In Designは要件に対して有効なフェーズである可能性がありますが、不具合に対しては有効ではありません。
新しいエンティティを作成するときは、これらが必須フィールドであるため、正しいステータスまたはフェーズを指定する必要があります。
このトピックでは、フィールドメタデータとlist_nodeリソースコレクションを使用して、エンティティに関連する値を取得する方法について説明します。list_nodeリソースコレクションにはすべてのリスト値が含まれ、それらを関連するエンティティにマップします。
手動テスト実行のステータスの有効な値を取得します
フィールドメタデータを使用すると、手動実行のすべてのフィールドとそのプロパティを確認できます。
GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/metadata/fields?query="entity_name EQ ^run_manual^"
手動テスト実行の2つのステータスフィールドが表示されます。
-
list_node.native_status、その説明は「計画済み、合格、失敗、未完了、ブロックなどの実行のステータス」です。
-
list_node.run_status、その説明は「合格、失敗、注意が必要など、実行の集約されたステータス」です。このステータスは、ダッシュボードなどの分析目的でネイティブステータスを要約するために使用されます。
これらのステータスの両方の値は、logical_name属性を使用して、リストノードへのターゲット参照として保存されます。
list_node.native_status
"field_type_data": { "multiple": false, "targets": [ { "logical_name": "list_node.run_native_status", "type": "list_node" } ] },
list_node.run_status
"field_type_data": { "multiple": false, "targets": [ { "logical_name": "list_node.run_status", "type": "list_node" } ] },
手動実行のネイティブステータスに許可される値を確認するには、list_nodesリソースコレクションで、論理名プレフィックスlist_node.run_native_statusに基づいたステータスを確認します。ワイルドカード*を使用して、このプレフィックスが付いたすべてのステータスを一覧表示します。
GET .../api/shared_spaces/<space_id>/works/<workspace_id>list_nodes?query="logical_name EQ ^ list_node.run_native_status*^"
これで、手動実行の許可されたステータスが表示されます。これは、たとえば、RESTAPIを使用して新しい手動テスト実行をPOSTするときに割り当てることができます。ステータスは、passed、failed、blocked、skipped、completed、plannedです (および1つのroot list_node)。
エンティティのコメントを見る
パフォーマンスを最適化するために、エンティティをGETする場合、コメントは応答に含まれません。コメントを表示するには、fields句を使用してコメントを明示的にリクエストする必要があります。
GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/defects&fields=comments
特定のバージョンの非推奨のAPIリソースを取得する
ALM Octaneの新しいバージョンにアップグレードした後、廃止されたリソースのリストを表示したい場合があります。非推奨になったときにこれらのリソースがサポートされなくなった場合に備えて、代わりに対応するエイリアスを参照するようにコードを更新することをお勧めします。
非推奨のリソースを確認するには、deprecatedフィールドでクエリを実行し、アップグレードしたバージョン番号を指定します。
非推奨のリソースの例:
GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/metadata/fields?query="deprecated EQ ^12.55.8^"
ヒント: 非推奨のリソースのエイリアスを確認するには、インタラクティブAPIクライアントを使用します。詳細については、インタラクティブAPIクライアントを参照してください。
参照情報: