APIの基本操作方法（環境設定からコマンドまで）

#### 参考

これは[Rest_API](https://qiita.com/nidhik/private/ab441186e4917a0e1612)の記事を参考に操作し、自分の中でわかりやすく初心者向けにまとめたものになります。

## ローカルにjqの環境を整える

### 【1】jqをダウンロード

1. [Download jq](https://stedolan.github.io/jq/download/)より、jqをダウンロードします。
今回はWindowsにダウンロードするため、Windowsの64bitを選択しました。
![jq_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/854960/59fed69b-e18b-10a2-fce3-dd2a37b89fcd.png)

2.ダウンロードが完了したら、任意のディレクトリにexeファイルを保存します。
例として、今回、私は```C:/Program Files (x86)```直下に「```jq```」というディレクトリを作成し、その中に保存しました。

### 【2】jqにパスを通す

jqのexeファイルにパスを通し、どこからでもjqを使える状態にします。

1. エクスプローラーより、「PC」を右クリックし、「プロパティ」を選択します。![jq_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/854960/b6710157-4d4e-ba16-00e8-97dd20f7bf4d.png)

2. 「システムの詳細設定」を開きます。![jq_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/854960/09b57e28-c60f-7131-16d5-f9d715db924d.png)

3. 「環境変数」を押下します。![jq_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/854960/58808df6-bf08-aa6f-5ce8-936daa22b89f.png)

4. 環境変数画面が開いたら、「Path」部分を選択し、「編集」を押下します。!![jq_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/854960/b0c966db-0251-22d5-d694-1c4e111bcf7c.png)

5. 「新規」を押下し、jqのexeファイルを保存した先のディレクトリのパスを入力します。入力が完了したら「OK」を押し設定画面を閉じます。
ここでは、すでに操作済みですが以下のように設定ができれば完了です。![jq_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/854960/35cc82c0-1249-7f90-5e4d-0443bdc2e3d4.png)

## Node.js / npmをインストールする（for Windows）

[Node.js / npmをインストールする（for Windows）](https://qiita.com/taiponrock/items/9001ae194571feb63a5e)を参考に、インストールとインストール後の確認を行います。

## JSON Serverをインストールする

以下コマンドを実行し、インストールを行います。

```
$ npm install -g json-server
C:\Users\nightrider\AppData\Roaming\npm\json-server -> C:\Users\nightrider\AppData\Roaming\npm\node_modules\json-server\lib\cli\bin.js
+ json-server@0.16.2
added 186 packages from 77 contributors in 16.051s
```

## JSON Serverでファイルを実行

**【事前準備】**
あらかじめファイルを作成しておく必要があります。
今回は、```db.json```というファイルを作成し、実行するディレクトリ直下に入れておきました。
JSONファイル引用：https://qiita.com/masato44gm/items/dffb8281536ad321fb08

１．jsonファイルが格納されているディレクトリに移動します。

```
$ cd C:\Users\nightrider\Desktop\hogehoge\rest_api
```
２．ファイルを実行します。

```
$ json-server --watch db.json

  \{^_^}/ hi!

  Loading db.json
  Done

  Resources
  http://localhost:3000/movies

  Home
  http://localhost:3000

  Type s + enter at any time to create a snapshot of the database
  Watching...
```

３．ブラウザから、Resourcesに記載されている```http://localhost:3000/movies```にアクセスすると、以下のようにJSONファイルの内容が表示されます。![json_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/854960/4e6b5b84-e528-96dc-0a93-9e70be13dc6b.png)

４．ブラウザから、Homeに記載されている```http://localhost:3000```にもアクセスし、上記のように内容が表示されるか確認します。

## REST APIコマンドを実行

以下REST APIコマンドを実行します。

#### GET

```
$ curl -X GET "http://localhost:3000/movies/2"
{
  "name": "Parasite",
  "director": "Joon-ho Bong",
  "rating": "9.9",
  "id": 2
}
```

#### POST

```
$ curl -d "{\"id\":10,\"name\":\"baeldung\"}" -H "Content-Type: application/json" http://localhost:3000/movies/
{
  "id": 10,
  "name": "baeldung"
}
```

#### PUT

```
$ curl -X PUT -d "name=Parasite&director=Joon-ho Bong&rating=9.9" http://localhost:3000/movies/4
{
  "name": "Parasite",
  "director": "Joon-ho Bong",
  "rating": "9.9",
  "id": 4
}
```

#### DELETE

```
curl -X DELETE "http://localhost:3000/movies/10"
```