---
# System prepended metadata

title: shrimp API

---

# shrimp API

# 概要

Webアプリケーションshrimpが用いるWebAPIです。ログインなどのユーザー認証、タスクやタグの登録、更新、削除などが行えます。

# ステータスコード

| **ステータスコード** | **説明** |
| --- | --- |
| 200 | リクエストが成功 |
| 201 | リクエストが成功し、データベースに新たなデータが追加された |
| 204 | リクエストに成功したが、返却するデータが存在しない |
| 400 | リクエストパラメータが間違っている |
| 401 | APIトークンが正しくない、もしくは期限が切れている |
| 404 | 存在しないURLにアクセスしている |
| 500 | サーバー側でエラーが発生 |

# アクセストークン

ユーザー登録、ユーザー仮登録、ログイン以外のリクエストはshrimpAPIで取得したアクセストークンをAuthorizationリクエストヘッダに付与する。

# API一覧

| **API名** | **機能概要** |
| --- | --- |
| ユーザー本登録 | ユーザー情報を本登録する。 |
| ユーザー仮登録 | メールアドレス情報を仮登録する。仮登録されたメールアドレスにユーザー本登録画面のURLを送る。 |
| ユーザー情報取得 | 登録されているユーザー情報のメールアドレス、パスワードを取得する。 |
| ユーザー情報更新 | 登録されているユーザー情報のメールアドレス、パスワードを変更する。 |
| ユーザー情報削除 | 登録されているユーザーのメールアドレス、パスワードとユーザーが所持しているタスク、タグなどを削除する。 |
| ログイン | ユーザー認証用のトークンを発行する。 |
| タスク作成 | 新たにタスクを登録する。 |
| タスク取得 | タスクの情報を取得する。 |
| タスク更新 | タスクの情報を変更する。 |
| タスク削除 | タスクの情報を削除する。 |
| タスク開始日時更新 | タスクの開始日時を変更する。 |
| タスク終了日時更新 | タスクの終了日時を変更する。 |
| タグ作成 | タグを作成する。 |
| タスクに付与されたタグ取得 | タスクにタグ付けされているタグの一覧を取得する。 |
| タグ削除 | タグを削除する。 |

# ユーザー

### ユーザー仮登録

メールアドレス情報を仮登録する。仮登録されたメールアドレスに本登録URLを送る。

| **メソッド** | **アクセスURL** |
| --- | --- |
| POST | /api/users/pre_register |

###### リクエスト

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| email | 文字列 | メールアドレス | ○ |  | 400文字 |

###### レスポンス
なし。

### ユーザー本登録

ユーザー情報を本登録する。

| **メソッド** | **アクセスURL** |
| --- | --- |
| POST | /api/users/register |

###### リクエスト

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| password | 文字列 | パスワード | ○ |  | 50文字 |

###### レスポンス

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| email | 文字列 | メールアドレス | ○ |  | 400文字 |
| password | 文字列 | パスワード | ○ |  | 50文字 |

### ユーザー情報取得

登録されているユーザー情報のメールアドレス、パスワードを取得する。

| **メソッド** | **アクセスURL** |
| --- | --- |
| GET | /api/users |

###### リクエスト

なし。

###### レスポンス

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| email | 文字列 | メールアドレス | ○ |  | 400文字 |
| password | 文字列 | パスワード | ○ |  | 50文字 |

### ユーザー情報更新

登録されているユーザー情報のメールアドレス、パスワードを変更する。

| **メソッド** | **アクセスURL** |
| --- | --- |
| PUT | /api/users |

###### リクエスト

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| email | 文字列 | メールアドレス | ○ |  | 400文字 |
| password | 文字列 | パスワード | ○ |  | 50文字 |

###### レスポンス

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| email | 文字列 | メールアドレス | ○ |  | 400文字 |
| password | 文字列 | パスワード | ○ |  | 50文字 |

### ユーザー情報削除

登録されているユーザーのメールアドレス、パスワードとユーザーが所持しているタスク、タグなどを削除する。

| **メソッド** | **アクセスURL** |
| --- | --- |
| Delete | /api/users |

###### リクエスト

なし。

###### レスポンス

空のレスポンスを返す。

# ユーザー認証

### ログイン

ユーザー認証用のトークンを発行する。

| **メソッド** | **アクセスURL** |
| --- | --- |
| POST | /api/login |

###### リクエスト

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| email | 文字列 | メールアドレス | ○ |  | 400文字 |
| password | 文字列 | パスワード | ○ |  | 50文字 |

###### レスポンス

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| access_token | 文字列 | 認証トークン | ○ |  |  |
| token_type | 文字列 | トークンの種類 | ○ |  |  |
| expires_in | 数値 | トークンの有効期限 | ○ |  |  |

# タスク

### タスク作成

新たにタスクを登録する。

| **メソッド** | **アクセスURL** |
| --- | --- |
| POST | /api/tasks |

###### リクエスト

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| title | 文字列 | タスクのタイトル | ○ |  |  |
| description | 文字列 | タスクの概要 | ○ |  |  |
| scheduled_begin_at | 文字列 | タスクの開始予定日時 | ○ |  |  |
| scheduled_finish_at | 文字列 | タスクの終了予定日時 | ○ |  |  |
| is_notified | ブール値 | タスクの開始予定日時を通知するかどうか | ○ |  |  |
| tag_ids | 配列 | タスクに付与されたタグのID |  | \[\] |  |

###### レスポンス

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| id | 数値 | タスクのid | ○ |  |  |
| title | 文字列 | タスクのタイトル | ○ |  |  |
| description | 文字列 | タスクの概要 | ○ |  |  |
| scheduled_begin_at | 文字列 | タスクの開始予定日時 | ○ |  |  |
| scheduled_finish_at | 文字列 | タスクの終了日時 | ○ |  |  |
| is_notified | ブール値 | タスクの開始予定日時を通知するかどうか | ○ |  |  |
| tag_ids | 配列 | タスクに付与されたタグのID |  | \[\] |  |

### タスク取得

タスクの情報を取得する。

| **メソッド** | **アクセスURL** |
| --- | --- |
| GET | /api/tasks |

###### リクエスト

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| id | 数値 | タスクのid | ○ |  |  |

###### レスポンス

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| id | 数値 | タスクのid | ○ |  |  |
| title | 文字列 | タスクのタイトル | ○ |  |  |
| description | 文字列 | タスクの概要 | ○ |  |  |
| scheduled_begin_at | 文字列 | タスクの開始予定日時 | ○ |  |  |
| scheduled_finish_at | 文字列 | タスクの終了日時 | ○ |  |  |
| is_notified | ブール値 | タスクの開始予定日時を通知するかどうか | ○ |  |  |

### タスク更新

タスクの情報を変更する。

| **メソッド** | **アクセスURL** |
| --- | --- |
| PUT | /api/tasks |

###### リクエスト

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| id | 数値 | タスクのid | ○ |  |  |
| title | 文字列 | タスクのタイトル | ○ |  |  |
| description | 文字列 | タスクの概要 | ○ |  |  |
| scheduled_begin_at | 文字列 | タスクの開始予定日時 | ○ |  |  |
| scheduled_finish_at | 文字列 | タスクの終了予定日時 | ○ |  |  |
| is_notified | ブール値 | タスクの開始予定日時を通知するかどうか | ○ |  |  |

###### レスポンス

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| id | 数値 | タスクのid | ○ |  |  |
| title | 文字列 | タスクのタイトル | ○ |  |  |
| description | 文字列 | タスクの概要 | ○ |  |  |
| scheduled_begin_at | 文字列 | タスクの開始予定日時 | ○ |  |  |
| scheduled_finish_at | 文字列 | タスクの終了予定日時 | ○ |  |  |
| is_notified | ブール値 | タスクの開始予定日時を通知するかどうか | ○ |  |  |

### タスク削除

タスクの情報を削除する。

| **メソッド** | **アクセスURL** |
| --- | --- |
| DELETE | /api/tasks |

###### リクエスト

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| id | 数値 | タスクのid | ○ |  |  |

###### レスポンス

なし。

### タスク開始日時更新

タスクの開始日時を変更する。

| **メソッド** | **アクセスURL** |
| --- | --- |
| POST | /api/tasks/begin |

###### リクエスト

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| id | 数値 | タスクのid | ○ |  |  |
| begin_at | 文字列 | タスクの開始日時 | ○ |  |  |

###### レスポンス

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| id | 数値 | タスクのid | ○ |  |  |
| begin_at | 文字列 | タスクの開始日時 | ○ |  |  |

### タスク終了日時更新

タスクの終了日時を変更する。

| **メソッド** | **アクセスURL** |
| --- | --- |
| POST | /api/tasks/finish |

###### リクエスト

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| id | 数値 | タスクのid | ○ |  |  |
| finish_at | 文字列 | タスクの開始日時 | ○ |  |  |

###### レスポンス

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| id | 数値 | タスクのid | ○ |  |  |
| finish_at | 文字列 | タスクの開始日時 | ○ |  |  |

# タグ

### タグ作成

タグを作成する。

| **メソッド** | **アクセスURL** |
| --- | --- |
| POST | /api/tags |

###### リクエスト

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| name | 文字列 | タグの名前 | ○ |  |  |

###### レスポンス

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| id | 数値 | タグのID | ○ |  |  |
| name | 文字列 | タグの名前 | ○ |  |  |

### タスクに付与されたタグ取得

タスクにタグ付けされているタグの一覧を取得する。

| **メソッド** | **アクセスURL** |
| --- | --- |
| GET | /api/tags |

###### リクエスト

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| id | 数値 | タスクのID | ○ |  |  |

###### レスポンス

以下のパラメータを持つ構造の配列。

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| id | 数値 | タグのID | ○ |  |  |
| name | 文字列 | タグの名前 | ○ |  |  |

例

``` json
[
    {
    "id": 1,
    "name": "家事"
    },
    {
    "id": 2,
    "name": "外出"
    }
]
```

### タグ削除

タグを削除する。

| **メソッド** | **アクセスURL** |
| --- | --- |
| DELETE | /api/tags |

###### リクエスト

| **パラメータ** | **型** | **内容** | **必須** | **デフォルト値** | **最大値** |
| --- | --- | --- | --- | --- | --- |
| id | 文字列 | タグのID | ○ |  |  |

###### レスポンス

空のレスポンスを返す。