課題にファイルを添付する
REST API を使用して、既存の課題に 1 つまたは複数のファイルをアップロードします。
要約
課題にファイルを添付するには:
課題のリストを取得して、対象の課題のエンティティ ID を取得します。
次のエンドポイントに POST リクエストを送信して、課題にファイルを添付します。
/api/issues/{issueID}/attachments
ステップバイステップ
ターゲットプロジェクトの課題のリストを取得します。
curl -X GET 'https://example.youtrack.cloud/api/issues?query=in:NP&$top=3&fields=id,idReadable,summary' \ -H 'Accept: application/json' \ -H 'Authorization: Bearer <YouTrack_token>'queryリクエストパラメーターを使用すると、検索クエリで課題のリストをフィルタリングできます。このサンプルでは、クエリを使用して、ターゲットプロジェクト(NP)に属する課題のみを取得します。この特定の例では、返される課題のリストを短縮するために、
$top=3パラメーターを使用して、最初に見つかった 3 つの課題のみを取得します。fieldsリクエストパラメーターでは、見つかった課題ごとに次の属性を返すようサーバーに指示します。idおよびidReadable- データベースエンティティ ID とプロジェクト内の課題の ID の両方。summary- 課題の概要は、対象の課題を特定できます。
このリクエストへの応答で、サーバーは次のデータを返します。
[ { "summary": "Investigation task", "idReadable": "NP-56", "id": "99-356", "$type": "Issue" }, { "summary": "Marketing activities", "idReadable": "NP-39", "id": "99-303", "$type": "Issue" }, { "summary": "TODO for release", "idReadable": "NP-77", "id": "99-500", "$type": "Issue" } ]対象の課題の ID を見つけます。この場合、データベース ID
99-500の課題NP-77を取り上げましょう。課題にファイルを添付するには、ファイルの内容を含む
POSTリクエストを以下のエンドポイントに送信してください。/api/issues/{issueID}/attachmentsこのエンドポイントは、
multipart/form-data形式のファイルアップロードデータを想定しています。multipart/form-data形式(たとえばcURL -F upload1=@...オプション)を使用してファイルをアップロードする場合は、このリクエストパターンを使用してください。1 つのリクエストで複数のファイルをアップロードする場合は、ファイルごとに個別のマルチパートフォームフィールド名を使用してください。このユースケースでは、以下の
cURLコマンドを使用します。curl -v -i -F upload1=@/Users/jetbrains/Downloads/youtrack.txt \ -F upload2=@/Users/jetbrains/Downloads/youtrack_new.jpeg \ -H 'Authorization: Bearer <YouTrack_token>' \ -H 'Content-Type: multipart/form-data' \ -X POST 'https://example.youtrack.cloud/api/issues/99-500/attachments?fields=id,name'この要請の要点は以下のとおりです。
-F upload1=@/Users/jetbrains/Downloads/youtrack.txtは、upload1という名前のマルチパートフォームフィールドとしてファイルをアップロードします。1 つのリクエストに複数のファイルを添付するには、各ファイルに固有のフォームフィールド名を指定した
-Fオプションを追加します。-F upload1=@/Users/jetbrains/Downloads/youtrack.txt \ -F upload2=@/Users/jetbrains/Downloads/youtrack_new.jpeg@という接頭辞は、cURLに対してローカルファイルシステムからファイルの内容を読み取るように指示します。Content-Type: multipart/form-dataは、このアップロードパターンに適したコンテンツタイプです。
応答で、サーバーは
nameと添付ファイルのデータベースエンティティ ID を返します。[ {"name":"youtrack.txt","id":"134-31","$type":"IssueAttachment"}, {"name":"youtrack_new.jpeg","id":"134-32","$type":"IssueAttachment"} ]
それだけです。すべてのファイルを課題に添付しました。