POST: 添付ファイルの作成
このトピックでは、POST操作を使用して添付ファイルを追加する手順について説明します。
概要
添付ファイルインスタンスを作成するには、添付ファイルコレクションに対してPOSTを実行し、次のいずれかを渡します。
-
JSON文字列。
-
octet-stream (テクニカルプレビューおよび変更される可能性があります)。
注: 一括POSTはサポートされていません。
添付ファイルには、POSTできる2種類のデータが含まれています。
-
添付エンティティの詳細。
-
添付ファイルのバイナリコンテンツ。バイナリコンテンツは通常、テキストエディタを使用せずに、クライアントツールまたはライブラリを使用して作成されます。
REST APIは、multipart/form-dataおよびoctet-streamデータのコンテンツタイプをサポートします (技術的なプレビューであり、変更される可能性があります)。
リクエストで添付ファイル名を指定すると、ファイル名の最初または最後の余分なスペースが削除され、エラーは発生しません。
添付ファイルのパスを指定できます。
フロー
-
クライアントツールまたはライブラリを使用して、ALM Octaneの外部に添付ファイルを作成します。
-
添付ファイルをエンティティにPOSTします。添付ファイルには所有者が必要であり、owner_work_itemやowner_testなどの「所有者」フィールドを使用して所有者を指定します。例については、json添付ファイルのPOSTリクエストを参照してください。
-
テスト: 添付ファイルを特定のテストステップに関連付けることができます。この関連付けは、テストスクリプトをPUT操作で更新することによって行います。例については、jsonアタッチメントのPOSTリクエストと手動テストステップへのPUTリクエストを参照してください。
例
添付ファイルを作成するときに、添付ファイルが関連付けられている項目を指定します。これは、任意の作業項目、および実行や実行ステップなどの他の項目にすることができます。
コンテンツタイプはmultipart/form-dataであり、application/json形式を受け入れることに注意してください。
投稿中に、添付ファイルを所有者エンティティに関連付けます。この例では、添付ファイルはIDが1002のwork_itemに関連付けられています。
*** Request ***
POST .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/attachments
Content-Type: multipart/form-data; boundary=a1b2c3d4 Accept: application/json --a1b2c3d4 Content-Disposition: form-data; name="entity" Content-Type: application/json; charset=UTF-8 { "owner_work_item": { "id": 1002, "type": "work_item" }, "name": "attachment.png", "description": "This is attachment.png image file" } --a1b2c3d4 Content-Disposition: form-data; name="content"; filename="attachment.png" Content-Type: image/png Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAALAAAAAzCAIAAAC48RV/AAAAAXNSR0IArs4c6QAAAARnQU1BAACx jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAALRSURBVHhe7ZjhUewwDITph3roh3qoh36OOLYc rSRHd445YNjv17Msr2R5J9y8lxshChqCADQEAWgIAtAQBKAhCEBDEICGIAANQQAaggA0BAFoCALQ EASgIQhAQxCAhiDAXzTE5/vrS+H1/bNFyDJoCAJ8gyE+3oLnCoOT/FZDrLzjj0FDrOM/G0LepNFn 0GaiefsIgzV/pCPAvuwqQ6h9fbZWLBFVuyX4iAJblS4LrVKsObh43UKUTtx8Uqiijh6YnDkmDBE2 07oJ5zIY1plOIdivm/HBjf4EQcUB6tXCQ72dpOjgjp6hjlTKbzfKOEZ3gVlDHLeVUfR2WgDbC4KJ TqRb/60GUo/3gKjJWZewkRzp5SSjJeRFRULf0eN0jmaN7qgQlpHd3sVFFvyGsHMI53LHsDClraKL ygyUmJF31fwREwn6w1HnRSMNT6CDoaxQ2+/bdn2RSUO0FjW9o3Aug2ENdYKxdLKRRdVcBEVkFYEZ J5q+akCg04vv1ksL4UrSf/AL0ftH+gXCuQTBU51gLJ10ZEE1F0GRQS87T/tC3GmIsNlVfpgwROvu aOGuufjguQ4OCclHNqx2RIyIP2HIi+YahbFOC6WFJL1zXvBBLhtC+j/aMgkVH0x0vG6J7MnpyOxy w0WMiC+3sQdNfyea5kY77lgvJHm2claoLXSRlUz8yZB7G44LYELr3AcznWh/F8vfxiw3XOTspYDW f17Udrwf7KEmMyzjEkaFYgE5fZm5H5X65vL/DOoCej8clwQzHby87ORvY5YbLhKI+GGrMedFCy1U qGF3TAVU8iOFbJOCOnCBOUOQaYL3fgg5rywkxlrylaAhnsxVQ/jPUv9i0BB/kVVfCMeavxg0xLO5 aoiC+vFRWfJtqNAQBKAhCEBDEICGIAANQQAaggA0BAFoCALQEASgIQhAQxCAhiAADUEAGoIANAQB aAgC0BBEcbt9ATZhuQV8mjteAAAAAElFTkSuQmCC --a1b2c3d4--
*** Response ***
{ "total_count": 1, "data": [{ "type": "attachment", "id": "1001" }], "exceeds_total_count": false }
Content-Typeはapplication/octet-streamであり、ALM-OCTANE-TECH-PREVIEW要求ヘッダーはtrueに設定されています。リクエストの本文にはファイルストリームが含まれています。リクエストクエリには、ファイル名と、添付ファイルを所有するエンティティへの参照が含まれています。
*** Request ***
POST .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/attachments?name=p01.jpg&owner_release={"type":"release","id":"1001"}
Content-Type: application/octet-stream
<@INCLUDE *C:\Downloads\p01.jpg*@>
Content-Typeはapplication/octet-streamであり、 ALM-OCTANE-TECH-PREVIEW要求ヘッダーはtrueに設定されています。リクエストクエリには、アップロードするファイル名と、添付ファイルを所有するエンティティへの参照が含まれています。
この方法では、添付ファイルの名前を設定できることに注意してください。次の例では、アップロードされたファイル名はmy_uploaded_image.jpgでした。my_attached_image.jpgという名前の添付ファイルとしてアップロードされます。
*** Login Request ***
curl -X POST \ -H "Content-Type: application/json" \ -c cookies.txt \ -d "{\"user\":\"<username>\",\"password\":\"<password>\"}" "http://<server_name>:<port>/authentication/sign_in"
*** Upload Request ***
curl -X POST \ -H "ALM_OCTANE_TECH_PREVIEW: true" \ -H "Content-Type: application/octet-stream" \ -b cookies.txt \ --data-binary @C:/my_files/my_uploaded_image.jpg \ "http://<server_name>:<port>/api/shared_spaces/<shared_space_id>/workspaces/<work_space_id>/attachments? \ name=my_attached_image.jpg&owner_work_item=<work_item_id>"
参照情報: