チュートリアル - kuranari/mblog GitHub Wiki

0. 前提

  • localhost:3000でrails applicationが起動している
  • curlコマンドがインストールされている
  • (optional) jqコマンドがインストールされている
    • jqコマンドがインストールされていない場合、各コマンドの| jqのパイプを削除して実行して下さい

1. API TOKENの発行

$ curl localhost:3000/signup -d '[email protected]&password=password' | jq
{
    "api_token": "PV2MLV9CnpfN854ALng6ATgE",
    "user": {
      "id": 1,
      "email": "[email protected]",
      "created_at": "2017-12-19T13:44:44.000Z",
      "updated_at": "2017-12-19T13:44:44.000Z"
    }
}

以降、response bodyで取得したAPI TOKENを使用します。

このチュートリアルではAPI_TOKENとしてPV2MLV9CnpfN854ALng6ATgEを使用しますが、実際に返ってきたトークンの値を使用して下さい。

2. 記事の作成

$ curl -H 'Authorization: Bearer PV2MLV9CnpfN854ALng6ATgE' \
       -XPOST localhost:3000/articles/ \
       -d 'title=Alice in wonderland&body=hogehoge' | jq
{
  "id": 1,
  "title": "Alice in wonderland",
  "body": "hogehoge",
  "user": {
    "id": 1,
    "email": "[email protected]",
    "created_at": "2017-12-17T16:57:46.000Z",
    "updated_at": "2017-12-17T16:57:46.000Z"
  },
  "favorite_users": []
}

3. 記事の編集

$ curl -H 'Authorization: Bearer PV2MLV9CnpfN854ALng6ATgE' -XPUT localhost:3000/articles/1 -d 'title=Bible' | jq
{
  "id": 1,
  "title": "Bible",
  "body": "hogehoge",
  "user": {
    "id": 1,
    "email": "[email protected]",
    "created_at": "2017-12-17T16:57:46.000Z",
    "updated_at": "2017-12-17T16:57:46.000Z"
  },
  "favorite_users": []
}

4. 記事のお気に入り

$ curl -H 'Authorization: Bearer PV2MLV9CnpfN854ALng6ATgE' -XPUT localhost:3000/articles/1/favorites

お気に入りのレスポンスBodyは空なので、articles/:idでお気に入りができたことを確認しましょう。

$ curl -H 'Authorization: Bearer PV2MLV9CnpfN854ALng6ATgE' localhost:3000/articles/1 | jq
{
  "id": 1,
  "title": "Bible",
  "body": "hogehoge",
  "user": {
    "id": 1,
    "email": "[email protected]",
    "created_at": "2017-12-17T16:57:46.000Z",
    "updated_at": "2017-12-17T16:57:46.000Z"
  },
  "favorite_users": [
    {
      "id": 1,
      "email": "[email protected]",
      "created_at": "2017-12-17T16:57:46.000Z",
      "updated_at": "2017-12-17T16:57:46.000Z"
    }
  ]
}

5. 記事の削除

$ curl -H 'Authorization: Bearer PV2MLV9CnpfN854ALng6ATgE' localhost:3000/articles/1 -XDELETE

記事が消えていることを確認しましょう。

$ curl -H 'Authorization: Bearer PV2MLV9CnpfN854ALng6ATgE' localhost:3000/articles/1 | jq
{
  "message": "Not found"
}

$ curl -H 'Authorization: Bearer PV2MLV9CnpfN854ALng6ATgE' localhost:3000/articles | jq
[]

以上です。