LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 3 years have passed since last update.

オンラインクラスAPIリファレンス

Last updated at Posted at 2020-04-29

オンラインクラス認証APIキー

  • 講師としてログイン。APIキーを取得。

オンラインクラスリソース

  • 講師(service_manager) => 複数のサービス(services) => 複数のコース(learning_courses)
  • 受講生(user) => 複数のコース(learning_courses)

レスポンスステータス

200「成功」
201「成功(リソースの作成)」
400「クライアントエラー」
400「APIキーが無効です」
404「リソースが見つからない」
500「サーバエラー」

講師が管理しているコースを全て取得(GET)

リクエストの例
curl -v -X GET https://www.the-online-class.com/api/v1/service_manager/learning_courses \
-H 'Authorization: Bearer {token}' \

HTTPリクエスト

GET https://www.the-online-class.com/api/v1/service_manager/learning_courses


リクエストヘッダー

Authorization
  • Bearer {channel access token}

パスパラメータ

パスパラメータ 説明
service_ids 講師が管理しているサービスのID

レスポンス

ステータスコード200とコース情報のJSONオブジェクトの配列を返します。

レスポンス例

{
    "status": "200",
    "message": "Loaded LearningCourses",
    "learning_courses": [
        {
            "id": 1,
            "name": "フリーエンジニアコース",
            "course_duration": 365,
            "is_schedule_force": true
        },
        {
            "id": 2,
            "name": "フリーエンジニアコース",
            "course_duration": 365,
            "is_schedule_force": true
        }
    ]
}
key type 説明
learning_courses[].id Number コースのID
learning_courses[].name String コースの名前
learning_courses[].course_duration Number コースの受講期限
learning_courses[].is_schedule_force Boolean コース受講生に学習スケジュールの設定を強制させるかどうかのフラグ

講師が管理しているのコースを取得(GET)

リクエストの例
curl -v -X POST https://www.the-online-class.com/api/v1/service_manager/learning_courses/{learning_course_id} \
-H 'Authorization: Bearer {token}' \

HTTPリクエスト

GET https://www.the-online-class.com/api/v1/service_manager/learning_courses/{learning_course_id}


リクエストヘッダー

Authorization
  • Bearer {token}

パスパラメータ

リクエストパラメーター 説明
learning_course_id (必須) コースのID

レスポンス

ステータスコード200とコース情報のJSONオブジェクトを返します。

レスポンス例
{
    "status": "200",
    "message": "Loaded LearningCourse",
    "learning_course": {
        "id": 1,
        "name": "フリーエンジニア養成コース",
        "course_duration": null,
        "is_schedule_force": true
    }
}

key type 説明
learning_course.id Number コースのID
learning_course.name String コースの名前
learning_course.course_duration Number コースの受講期限
learning_course.is_schedule_force Boolean コース受講生に学習スケジュールの設定を強制させるかどうかのフラグ

講師が管理しているのコース情報を更新(PATCH)

リクエストの例
curl -v -X PATCH https://www.the-online-class.com/api/v1/service_manager/learning_courses/{learning_course_id} \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {token}' \
-d '{ \
    "name": "フリーエンジニアコース", \
    "course_duration": 365, \
    "is_schedule_force": true \
}'

HTTPリクエスト

PATCH https://www.the-online-class.com/api/v1/service_manager/learning_courses/{learning_course_id}


リクエストヘッダー

Authorization
  • Bearer {token}

リクエストボディー

{
    "name": "フリーエンジニアコース",
    "course_duration": 365,
    "is_schedule_force": true
}
リクエストボディー タイプ 説明
name String コースの名前
course_duration Number コースの受講期限
is_schedule_force Boolean コース受講生に学習スケジュールの設定を強制させるかどうかのフラグ

※name,course_duration,is_schedule_forceのいずれかのパラメーターを含めてください


レスポンス

ステータスコード200と更新コース情報のJSONオブジェクトを返します。

レスポンス例
{
    "status": "200",
    "message": "Updated LearningCourse",
    "learning_course": {
        "id": 1,
        "name": "test",
        "course_duration": 365,
        "is_schedule_force": true
    }
}

key type 説明
learning_course.id Number コースのID
learning_course.name String コースの名前
learning_course.course_duration Number コースの受講期限
learning_course.is_schedule_force Boolean コース受講生に学習スケジュールの設定を強制させるかどうかのフラグ

講師が管理している全受講生取得(GET)

リクエストの例
curl -v -X GET https://www.the-online-class.com/api/v1/service_manager/users \
-H 'Authorization: Bearer {token}'

HTTPリクエスト

GET https://www.the-online-class.com/api/v1/service_manager/users


リクエストヘッダー

Authorization
  • Bearer {token}

パスパラメーター

パスパラメーター 説明
learning_course_ids コースのIDの配列

レスポンス

ステータスコード200と受講生情報のJSONオブジェクトの配列を返します。

レスポンス例
{
    "status": "200",
    "message": "Loaded users",
    "users": [
        {
            "id": 1,
            "email": "k.kfjfdsjaojima09211986@gmail.com",
            "name": "小島",
            "learning_courses": [
                {
                    "id": 1,
                    "name": "test"
                }
            ]
        },
        {
            "id": 2,
            "email": "kamifjlsanomi.3nd@docomo.ne.jp",
            "name": "尾﨑",
            "learning_courses": [
                {
                    "id": 1,
                    "name": "test"
                }
            ]
        }
     ]
}

key type 説明
users 配列 受講生オブジェクトの配列
users[].id String 受講生のID
users[].name String 受講生の名前
users[].email String 受講生のemail
users[].learning_courses 配列 受講生の受講コースオブジェクトの配列
users[].learning_courses[].id String 受講生の受講コースのID
users[].learning_courses[].name String 受講生の受講コースの名前

特定受講生一人の情報取得(GET)

リクエストの例
curl -v -X GET https://www.the-online-class.com/api/v1/service_manager/users/1  \
-H 'Authorization: Bearer {token}' \

HTTPリクエスト

GET https://www.the-online-class.com/api/v1/service_manager/users/{user_id}

(emailを指定してユーザーを特定する場合)
GET https://www.the-online-class.com/api/v1/service_manager/users/find_email


リクエストヘッダー

Authorization
  • Bearer {token}

パスパラメーター(/find_email でemailを指定してユーザーを特定)

パスパラメーター 説明
email ユーザーのemail

レスポンス

ステータスコード200と受講生情報のJSONオブジェクトを返します。

レスポンス例

{
    "status": "200",
    "message": "Loaded user",
    "user": {
        "id": 1,
        "email": "k.kfjfdsjaojima09211986@gmail.com",
        "name": "小島",
        "learning_courses": [
            {
                "id": 1,
                "name": "test"
            }
        ]
    }
}

key type 説明
uesr[].id String 受講生のID
uesr[].name String 受講生の名前
uesr[].email String 受講生のemail
uesr[].learning_courses 配列 受講生の受講コースオブジェクトの配列
uesr[].learning_courses[].id String 受講生の受講コースのID
uesr[].learning_courses[].name String 受講生の受講コースの名前

特定受講生一人の情報を更新(PATCH)

リクエストの例
curl -v -X PATCH https://www.the-online-class.com/api/v1/service_manager/users/1  \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {token}' \
-d '{
    "can_learning_course_ids": [1,2],
    "can_not_learning_course_ids": [3]
}'

HTTPリクエスト

PATCH https://www.the-online-class.com/api/v1/service_manager/users/{user_id}

(emailを指定してユーザーを特定する場合)
GET https://www.the-online-class.com/api/v1/service_manager/users/find_email


リクエストヘッダー

Authorization
  • Bearer {token}

パスパラメーター(/find_email でemailを指定してユーザーを特定)

パスパラメーター 説明
email ユーザーのemail

リクエストボディー

{
  "can_learning_course_ids":[1],
  "can_not_learning_course_ids":[2]
}
リクエストボディー タイプ 説明
can_learning_course_ids コースIDの配列 受講可能にしたいコースのIDを指定
can_not_learning_course_ids コースIDの配列 受講不可能にしたいコースのIDを指定

レスポンス

ステータスコード200と受講生情報のJSONオブジェクトの配列を返します。

レスポンス例

{
    "status": "200",
    "message": "Updated user",
    "user": {
        "id": 1,
        "email": "k.kfjfdsjaojima09211986@gmail.com",
        "name": "小島",
        "learning_courses": [
            {
                "id": 2,
                "name": "フリーエンジニアコース"
            }
        ]
    }
}

key type 説明
user.id String 受講生のID
user.name String 受講生の名前
user.email String 受講生のemail
user.learning_courses 配列 受講生の受講コースオブジェクトの配列
user.learning_courses[].id String 受講生の受講コースのID
user.learning_courses[].name String 受講生の受講コースの名前

特定受講生を管理対象から削除(DELETE)

リクエストの例
curl -v -X DELETE https://www.the-online-class.com/api/v1/service_manager/users/1 \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {token}' \
-d '{ \
  service_ids:[1,2] \
}'

HTTPリクエスト

DELETE https://www.the-online-class.com/api/v1/service_manager/users/{user_id}

(emailを指定してユーザーを特定する場合)
GET https://www.the-online-class.com/api/v1/service_manager/users/find_email


リクエストヘッダー

Authorization
  • Bearer {token}

パスパラメーター(/find_email でemailを指定してユーザーを特定)

パスパラメーター 説明
email ユーザーのemail

リクエストボディー

{
  "service_ids": [1,2]
}
リクエストボディー タイプ 説明
service_ids(必須)  String 管理対象から外すservice_idの配列

レスポンス

ステータスコード200と管理対象除外受講生情報のJSONオブジェクトを返します。

レスポンス例

{
    "status": "200",
    "message": "Deleted user",
    "user": {
        "id": 1,
        "email": "k.kfjfdsjaojima09211986@gmail.com",
        "name": "小島",
        "learning_courses": []
    }
}

key type 説明
user.id String 受講生のID
user.name String 受講生の名前
user.email String 受講生のemail
user.learning_courses 配列 受講生の受講コースオブジェクトの配列
user.learning_courses[].id String 受講生の受講コースのID
user.learning_courses[].name String 受講生の受講コースの名前

新規受講生作成(POST)

リクエストの例
curl -v POST https://www.the-online-class.com/api/v1/service_manager/users \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {token}' \
-d '{ \
  "users":{ \
    "name": "テストユーザー", \
    "email": "test22222@email.com", \
    "password": "password", \
  }, \
  "can_learning_course_ids": "1,2", \
}'

HTTPリクエスト

POST https://www.the-online-class.com/api/v1/service_manager/users


リクエストヘッダー

Authorization
  • Bearer {token}

リクエストボディー

{ 
    "users":{
        "name": "テストユーザー",
        "email": "test22222@email.com",
        "password": "password"
    },
    "can_learning_course_ids": [1,2],
    "can_not_learning_course_ids": [3]
}
リクエストボディー タイプ 説明
name  String 新規に作成する受講生の名前(nameがない場合、emailの値になります)
email(必須) String 新規に作成する受講生のemail
password(必須) String 新規に作成する受講生のpassword
can_learning_course_ids コースIDの配列 受講可能にしたいコースのIDを指定
can_not_learning_course_ids コースIDの配列 受講不可能にしたいコースのIDを指定

レスポンス

ステータスコード200と管理対象除外受講生情報のJSONオブジェクトを返します。

レスポンス例

{
    "status": "201",
    "message": "Created user",
    "user": {
        "id": 40,
        "email": "test22222@email.com",
        "name": "テストユーザー",
        "learning_courses": [
            {
                "id": 1,
                "name": "test"
            },
            {
                "id": 2,
                "name": "フリーエンジニアコース"
            }
        ]
    }
}

key type 説明
user.id String 受講生のID
user.name String 受講生の名前
user.email String 受講生のemail
user.learning_courses 配列 受講生の受講コースオブジェクトの配列
user.learning_courses[].id String 受講生の受講コースのID
user.learning_courses[].name String 受講生の受講コースの名前
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up