【UiPath】Backlog APIを用いた課題の操作(追加・変更)

# 概要
UiPathより、backlogへの課題の作成について解説

# 使用パッケージ(2022/07/17時点)
UiPath.WebAPI.Activities[Ver 1.4.4]

# サンプルファイル
[GitHub](https://github.com/odm-cckte0122/backlogAPI_issue)にアップロードしています。

# 事前準備
## 操作対象の各種IDを取得する
### APIキー(apiKey)
Backlogにログインし、ユーザーアイコンをクリック後「個人設定」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/d93264ed-f18e-078e-d5da-f8f33cc0ee7d.png)

個人設定画面より、「API」をクリックしAPI画面へ遷移する
![pasted-2022.04.11-10.35.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/2f2b7f39-fd91-67b1-9bda-df4a08afcb52.png)


API画面より、メモ欄に任意の文言を入力し「登録」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/470d5442-9e96-84f3-ed5b-080e9585b5da.png)

作成されたAPIキーをコピーし控えておく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/a9f220ae-a862-8e6f-7da2-5949f12d841b.png)

### プロジェクトID(projectid)
Backlogにログインし、課題を追加したいプロジェクトに移動し「プロジェクト設定」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/5c386602-686e-be04-e165-ff3c08f6cbe7.png)

プロジェクト設定画面のアドレスバーより、「project.id=」以降の数値がプロジェクトIDとなるため控えておく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/d0a74264-1130-e518-4a1b-f8d5f1eab7ef.png)

### スペースID(spaceId)
backlogにログインし、アドレスバーより「○○○○.backlog.jp(もしくは○○○○.backlog.com)」の○○○○部分がスペースIDとなるため控えておく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/9de990ec-152e-758f-164b-4fa2a2714311.png)

### 課題種別ID(issueTypeId)
Backlogにログインし、課題を追加したいプロジェクトに移動し「プロジェクト設定」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/eb5e6d4d-7970-e71b-9451-a8f93e67f534.png)

プロジェクト設定の「種別」タブより、課題追加時に使用する種別をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/7210bfd6-7822-6467-22eb-db7e9cf96560.png)

種別画面のアドレスバーより、「issueType.id=」以降の数値が課題種別IDとなるため控えておく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/38a9d8b4-39f5-b214-6b18-d8994b4c5b91.png)

# できること(使用頻度が高いもの)
## 課題の追加
サンプルファイル：sendBacklog.xaml
**HTTPを要求**アクティビティを使用することで、指定したプロジェクトの課題に新規課題を投稿することができる。

### アクティビティ設定情報
※設定箇所のみ記載

<入力>

| 項目名  | 入力内容 |
| ------------- |  ------------- |
| エンドポイント  | 課題を投稿するAPIのURL。必須<br>※入力する値は「 **https://＜スペースID＞.backlog.jp(もしくはcom)/api/v2/issues?apiKey=＜APIキー＞** 」 <br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/3f456191-b771-9380-3b03-1ce3b40232a7.png) |
| メソッド | POST(固定値) |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/4d08ad53-e1b3-f309-bf93-fa7b2b57f004.png)

<オプション>

| 項目名  | 入力内容 |
| ------------- |  ------------- |
| パラメーター | 課題の登録に必要な各種情報を入力<br> projectid：プロジェクトID <br> issueTypeId：課題種別ID <br> priorityId：優先度(2:高、3:中、4:低) <br> summary：課題件名 <br> description：課題本文 <br> attachmentId[]：添付ファイルID(任意、添付ファイルIDの取得方法については後述「添付ファイルのアップロード」を参照)<br> ※その他設定可能な項目については、[backlog API課題の追加(リクエストパラメータ)](https://developer.nulab.com/ja/docs/backlog/api/2/add-issue/#%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC) を参照 <br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/91437875-d995-f66e-357a-ff41c31a99c5.png) |
| ヘッダー | 課題の追加に必要なヘッダー情報を入力<br> Content-Type："application/x-www-form-urlencoded"（固定値) <br> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/b26a8d63-892f-f5cc-2e1b-feaa92b2595a.png)|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/eb848d1e-df45-485f-bfbe-f8daa3af0e01.png)

<出力>

| 項目名  | 入力内容 |
| ------------- |  ------------- |
| 状態コード | APIの処理状態を表すコードを受ける変数を指定 <br> ステータスが200,201の場合は正常終了、それ以外の場合は異常終了となるため、取得した状態コードを確認する処理を実装するのが望ましい |
| 結果 | APIの処理状態を表すメッセージを受ける変数を指定 <br>※正常に更新が完了すると、更新後の課題情報が取得できる <br> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/2730e659-1cdb-cdb5-ffed-e11dda0f410a.png) |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/f1cdae38-2d18-a8a1-fbe6-d715e3292aed.png)

## 添付ファイルのアップロード
サンプルファイル：sendBacklog.xaml
### アクティビティ設定情報
※設定箇所のみ記載

<入力>

| 項目名  | 入力内容 |
| ------------- |  ------------- |
| エンドポイント  | 課題を投稿するAPIのURL。必須<br>※入力する値は「 **https://＜スペースID＞.backlog.jp(または.com)/api/v2/space/attachment?apiKey=＜APIキー＞** 」 <br> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/25f355a2-3ef7-2393-7073-ff74201f683e.png) |
| メソッド | POST(固定値) |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/74f522c8-10fc-51a6-28d6-a15af9337844.png)

<オプション>

| 項目名  | 入力内容 |
| ------------- |  ------------- |
| 添付ファイル | アップロードするファイルの保存パスを入力<br> file：アップロードするファイルの保存パス <br> ※その他設定可能な項目については、[backlog API添付ファイルの送信(リクエストパラメータ)](https://developer.nulab.com/ja/docs/backlog/api/2/post-attachment-file/#) を参照 <br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/c173630a-cb08-be72-86d6-aac02ef7e426.png) |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/3b32e64e-b003-fe93-951c-6935419e8fa9.png)

<出力>

| 項目名  | 入力内容 |
| ------------- |  ------------- |
| 状態コード | APIの処理状態を表すコードを受ける変数を指定 <br> ステータスが200,201の場合は正常終了、それ以外の場合は異常終了となるため、取得した状態コードを確認する処理を実装するのが望ましい |
| 結果 | APIの処理状態を表すメッセージを受ける変数を指定 <br>※正常に登録が完了すると、添付ファイルのID(attachmentID)が取得できる <br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/542042fe-0e08-6133-06bb-23180af72043.png) |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/21203ce0-ca85-c390-a190-b669567ccb67.png)

## 課題の更新
サンプルファイル：sendBacklog.xaml
### アクティビティ設定情報
※設定箇所のみ記載

<入力>

| 項目名  | 入力内容 |
| ------------- |  ------------- |
| エンドポイント  | 課題を更新するAPIのURL。必須<br>※入力する値は「 **https://＜スペースID＞.backlog.jp(または.com)/api/v2/issues/＜課題ID＞?apiKey=＜APIキー＞** 」 <br> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/b4406514-c81b-4526-80de-5e642e800b04.png) |
| メソッド | PATCH(固定値) |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/1276db05-3ecc-6305-94f9-743a919e62dd.png)

<オプション>

| 項目名  | 入力内容 |
| ------------- |  ------------- |
| パラメーター | 課題の更新に必要な各種情報を入力（変更したい情報のみでOK）<br> issueTypeId：課題種別ID <br> priorityId：優先度(2:高、3:中、4:低) <br> summary：課題件名 <br> description：課題本文 <br> attachmentId[]：添付ファイルID(任意、添付ファイルIDの取得方法については前述「添付ファイルのアップロード」を参照)<br> ※その他設定可能な項目については、[backlog API課題情報の更新(リクエストパラメータ)](https://developer.nulab.com/ja/docs/backlog/api/2/update-issue/#%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC) を参照 <br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/6d3525d6-2dd2-b0a9-f851-b0de1440e386.png) |
| ヘッダー | 課題の更新に必要なヘッダー情報を入力<br> Content-Type："application/x-www-form-urlencoded"（固定値) <br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/faf2712e-db66-9ca6-86b6-28a9439835b6.png) |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/53c81cd9-c79b-d63a-1a11-fe6a05a81dbe.png)

<出力>

| 項目名  | 入力内容 |
| ------------- |  ------------- |
| 状態コード | APIの処理状態を表すコードを受ける変数を指定 <br> ステータスが200,201の場合は正常終了、それ以外の場合は異常終了となるため、取得した状態コードを確認する処理を実装するのが望ましい |
| 結果 | APIの処理状態を表すメッセージを受ける変数を指定 <br>※正常に更新が完了すると、更新後の課題情報が取得できる <br> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/05ce7265-1090-a0e2-a237-c274673a3b54.png)|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/0c91f095-5fe5-3463-0c2d-adf00b2db88d.png)

# 参考(backlog APIリファレンスの読み替え方法)
![pasted-2022.04.12-18.57.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176879/bd7bb72c-8061-027a-1e19-dd2c30c79606.png)
[backlogAPI 公式リファレンス](https://developer.nulab.com/ja/docs/backlog/#)