ConoHa APIを「Postman API ネットワーク」で使えるようにしてみた


# Postman API Network とは

[Postman API Network](https://www.postman.com/explore)はAPIの情報が集まるプラットフォームとなっていて、[Postman](https://www.postman.com/)が提供しています。
世界中の様々なAPIの情報が集まっていて、Postmanのアプリケーション上だけでなく、ブラウザ上からもAPIを試すことができます。

# 作成したPostmanワークスペース

ConoHa Support Team Workspace


https://www.postman.com/conoha-support-team/workspace/conoha-support-team-workspace


# Postmanを使ったConoHa APIの効果的な利用方法

## ConoHa API利用のための事前準備ガイド

ConoHaのAPIを利用するためには、ConoHaのアカウント作成と、APIユーザーの作成が必要です。
既にどちらも完了している場合は、[APIユーザーの認証情報の取得](#必要な認証情報の取得方法)から進めてください。

### アカウントの作成とログインプロセス

[アカウント登録ページ](https://www.conoha.jp/vps/signup/)からアカウントを作成します。

作成済みの場合は[ログインページ](https://www.conoha.jp/login/)からログインします。

https://www.conoha.jp/login

### APIユーザーの作成手順

コントロールパネルにログインが完了すると、「バージョン切替」のボタンが左下に表示されますので新バージョン(Ver.3.0)を選択します。

<img width="30%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/04bb0364-3fb4-b6f6-14ea-06ad69a0e1d5.png">


左メニューの「API」を選択し、「+ ユーザー」をクリックします。


<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/21f314e0-3021-6771-b379-6977b7bbfbd0.png">

パスワードを入力し「保存」をクリックします。
「成功しました」というポップアップが表示されれば完了です。

### 必要な認証情報の取得方法

[API情報取得ページ](https://manage.conoha.jp/V3/API/)を開きます。

テナント情報を開いた上で以下の5つの情報をメモしておきます。

```
① テナントID
② テナント名
③ ユーザー名
④ ユーザーID
⑤ パスワード
```

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/2299876d-10f3-218f-349b-6f8d335cf912.png">

ConoHaのAPIを利用する準備は完了です。

## 簡易的な使い方

PostmanからAPI実行を試すにはPostmanのアカウントが必要のため、まず[アカウントの作成](https://identity.getpostman.com/signup)(無料)
または[ログイン](https://identity.getpostman.com/login)を行います。

そしてWebブラウザ、またはPostmanのアプリケーションから[ConoHa Support Team Workspace](https://www.postman.com/conoha-support-team/workspace/conoha-support-team-workspace)を開きます。

:::note info
Postmanのアプリケーションから開くには上部の検索窓から「ConoHa」と検索し、検索結果の「ConoHa Support Team Workspace」をクリックします。
:::

開くと以下のような画面が表示されますので「Environments」をクリックします。

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/8c2fd36e-137d-9f6e-6f0d-ed850e895f34.png">

「Environments」の画面が表示されますので「ConoHa v3.0 API」をクリックし、先程メモしたAPI情報を「Current Value」に入力します。

その後「Save」をクリックして保存します。

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/0aada629-ae27-f464-3040-4a8b3f168464.png">


:::note info
Current Valueはローカルに保存され一時的なものですので、Postmanを閉じると消えてしまいます。継続的に使いたい場合は以下の[自分のワークスペースにforkして使う方法](#自分のワークスペースにforkして使う方法おすすめ)をおすすめします。
:::

最後に右上のEnvironment選択ボタンをクリックし、先程保存した「ConoHa v3.0 API」を選択します。

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/fe147199-57fd-f4d0-89c9-620c049ed3e1.png">

これで準備完了です。
左メニューの「Collections」から使いたいAPIを選択し、APIを試すことができます。

## 自分のワークスペースにforkして使う方法(おすすめ)

この方法の場合はEnvironmentを自分のワークスペースにコピーすることができますので、
API認証情報を毎回入力する手間が省けたり、用途に合わせてカスタマイズしたりすることができます。


### 1. Collectionをforkする

利用したいAPIのCollection名の横にある「･･･」をクリックし、「Create a fork」をクリックします。

<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/73740ca7-fd53-d48d-a292-8c678ae739be.png">


forkを識別するための任意の名前とfork先のワークスペースを選択します。

「Watch original collection」にチェックを入れると、fork元のCollectionに更新があった場合に通知を受け取ることができます。

「Fork Collection」をクリックします。

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/356ff5e8-599e-bebf-38cb-32c203f65321.png">


CollectionsにforkしたCollectionが追加されていれば成功です。

<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/41b75237-075c-bd1e-9cff-56b7ed7a5e82.png">

### Environmentをforkする

同じ要領でEnvironmentもforkします。

<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/2023be9a-c5a3-4e83-a592-40c722c9aa33.png">

forkした後は自分のワークスペースに取り込まれますので、以下のように「Initial Value」へ先程メモしたAPI情報を入力すれば再入力の手間を省くことができます。


<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/d45ad04c-41d3-d105-224a-078542aa7f16.png">

:::note info
補足
1. Postmanにはexport機能もありますが、exportではなくforkした場合の利点としては「fork元で更新された内容を取り込むこと(pull)ができる」という点があります。
1. forkしたCollectionやEnvironmentは自分のワークスペースに取り込まれますので好きに改変可能で、改変した内容は大元に影響を与えません。
:::


## 実際にUbuntuサーバ作成を試す

これまでの手順でPostmanからConoHaのAPIを実行する準備が完了しましたので、Postmanから実際にサーバ作成を試してみます。

ConoHaのAPIでサーバ作成を行うには複数のAPIを実行する必要がありますが、Postmanの「Collection Runner」機能を使うことで複数のAPIを一括で実行することができますので、これを利用します。

作成するサーバは以下です。

```
* イメージ: Ubuntu 22.04 パブリックイメージ
* スペック: 1GB
* 料金プラン: 時間課金 (APIでは時間課金プランのみ利用可能です)
```


まずは右上のEnvironment選択ボタンをクリックし、あらかじめforkした「ConoHa v3.0 API」を選択します。

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/fe147199-57fd-f4d0-89c9-620c049ed3e1.png">


次に左メニューの「Collections」から「ConoHa VPS v3.0 Public API シナリオ」の中の「Ubuntuサーバ作成シナリオ」を選択し、右上の「Run」をクリックします。

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/30967af2-27eb-e1b1-66a6-92e91e9d9ee0.png">

「Runner」というタブが開きますので右下の「Run ConoHa VPS v3.0 Public API シナリオ」をクリックして実行します。

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/b4fec7e7-e1a0-8317-e76e-0ae3a95224f0.png">

成功すると以下のような画面が表示されます。

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/911d8823-2015-2941-165c-f36575ff9a53.png">

Webコンソールにログインして、サーバが作成されていることを確認します。

左下にある「Console」をクリックするとWebコンソールのURLが出力されていますので、コピペしてブラウザで開きます。

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/83c0c1f3-c89b-ca04-0a1b-16552265b4cf.png">

コンソール画面が表示されたあと、一度画面をクリックしてから「Enter」キーを押すとログインプロンプトが表示されます。

<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/80257363-8754-5d86-d1a8-79eb877978c5.png">

:::note warn
もし「Closed」と表示されていてログインできない場合は、[トラブルシューティング](#トラブルシューティング)を参照してください。
:::

初期rootパスワードは自動生成されているため、コンソール画面に表示されているパスワードをコピーしておきます。

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/2a7737a4-ce36-13ad-79dc-cbd969d4c83e.png">


ユーザは「root」、パスワードは先程メモしたパスワードをペーストしてログインします。

以下のようにログインできれば成功です。

<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/38fccffb-1d1b-1003-462f-67c27bf543f6.png">

## サーバを削除する

ConoHaはサーバを削除するまで課金されるため、不要なサーバは削除しておきます。

サーバを削除するには、先程と同じ手順で「ConoHa VPS v3.0 Public API シナリオ」の中の「サーバ削除シナリオ」を実行します。

サーバ作成シナリオで作成したサーバ等のリソースIDがCollection変数のCurrent Valueに保存されていますので、サーバ削除シナリオでは自動でそれらを利用して削除対象のサーバを指定しています。

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/e4178b9f-8240-df6f-787e-48eddccc5ca9.png">

Runを押下

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/8dfa4bbc-bba5-02bc-b20b-9bd8de3e37ca.png">


成功すると以下のような画面が表示されます。全て緑色で表示(PASS)されていれば成功です。

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/8fc24755-05cd-af92-f199-76a3399406a3.png">

## その他のAPIを試したい時

ConoHaのAPIはサーバ作成以外にも様々なものがありますので、興味のあるAPIをぜひ試してみてください。

左メニューの「Collections」から「ConoHa VPS v3.0 Public APIs」を選択し、使いたいAPIを選択して実行します。

ただし、ConoHaのAPIを使うには認証用のトークン(`X-Auth-Token ヘッダー`)が必要ですので、まずは「APIユーザのトークン発行」を実行してから他のAPIを実行してください。

<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/0c8eb980-57a8-e2d4-8bc0-20e6f2e683cb.png">

:::note info
発行したトークンはPostmanのEnvironmentに保存されます。
一度トークンを発行すればトークンの有効期限が切れるまでは他のAPIを実行する度にトークンを発行する必要はありません。
:::






# このツールを作成した背景と動機

私は1年程前から、APIの開発にてPostmanを本格的に活用し始めました。
その過程でPostmanは単なるAPI開発者が使うAPIのテストツールではなく、API利用者に迅速にAPIを提供するためのツールとしても活用できることに気づきました。

そんな中PostmanのAPIネットワーク機能を知り探索してみると、ConoHaのAPIの情報がないことに気づきました。そこで、ConoHaのAPIをPostman API ネットワークに登録することでConoHaのAPIを利用したいという人のハードルを下げられるのではないかと考え、作成に至りました。


# トラブルシューティング

## もしWebコンソールが「Closed」と表示されていてログインできない場合

<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/f0791861-d433-7430-21a1-b0fb7f9cd843.png">


この場合コンソール用のトークンの有効期限が切れているため、ページのリロードを試みて改善するかを確認します。

改善しない場合は再度WebコンソールURL取得のAPIのみをPostmanから実行してください。

方法は、Runnerの実行結果画面内の「WebコンソールURL取得」をクリックし、右上の「Send」をクリックするだけです。


<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/72179206-b4df-8d57-68c1-62e175762ae1.png">

<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3026125/5cfbce31-98d6-dfb8-d4d4-cbbf8703e703.png">


「Send」をクリックすると新しいWebコンソールURLが出力されますので、コピペしてブラウザで開きます。