仕様書:IF仕様(バックエンドAPI)
バックエンドAPIサーバのIF(インターフェース)仕様を記述します。
バックエンドAPIサーバのIF仕様
概要
このドキュメントでは、FastAPIを用いて構築されたAPIのエンドポイント、パラメータ、レスポンスに関する情報を記述しています。
エンドポイント
反応関連
/reaction/stat/{category}/{year}/{month}/{problem_number}- メソッド: GET
- タグ: Reaction
- サマリー: 指定された問題の統計情報を取得する
- パラメータ
year(path): 年month(path): 月problem_number(path): 問題番号category(path): カテゴリーuser_id(query): ユーザID (必須)user-agent(header): User-Agent (必須)
- レスポンス
- 200: 成功
- 422: バリデーションエラー
/reaction/stat/{cat_no}- メソッド: GET
- タグ: Reaction
- サマリー: 指定された問題の統計情報を取得する
- パラメータ
cat_no(path): カテゴリー番号user_id(query): ユーザID
- レスポンス
- 200: 成功
- 422: バリデーションエラー
/reaction/weakness- メソッド: GET
- タグ: Reaction
- サマリー: 弱点ポイントを取得する
- パラメータ
category(query): カテゴリー (デフォルト: 0)user_id(query): ユーザID (デフォルト: "")limit(query): 取得件数 (デフォルト: 10)
- レスポンス
- 200: 成功
- 422: バリデーションエラー
/reaction/verify- メソッド: POST
- タグ: Reaction
- サマリー: 指定した問題の解答を登録する。選択内容と正答、正誤判定を返却
- パラメータ
user-agent(header): User-Agent (必須)
- リクエストボディ
user_id(必須): ユーザIDyear(必須): 年month(必須): 月problem_number(必須): 問題番号lecture(必須): 講義category(必須): カテゴリーreaction(必須): 反応checksum(必須): チェックサムmy_token(デフォルト: ""): マイ - トークンget_other_choose(デフォルト: false): 他の選択を取得するかどうか
- レスポンス
- 200: 成功
- 422: バリデーションエラー
/reaction/leaderboard- メソッド: POST
- タグ: Reaction
- サマリー: 学生別にグループ化された教師レビューを取得する
- リクエストボディ
group_type(デフォルト: "all"): グループ化のタイプgroup_by_student(デフォルト: 0): 学生でグループ化するかどうかgroup_by_day(デフォルト: 1): 日付でグループ化するかどうかfilter_category(デフォルト: 0): フィルターするカテゴリーfilter_lecture_id(デフォルト: -1): フィルターする講義IDextract_start_date(デフォルト: "2020-01-01"): 抽出開始日extract_end_date(デフォルト: "2024-07-29"): 抽出終了日extract_user_id(デフォルト: ""): 抽出するユーザIDleaderboard_mode(デフォルト: 1): ランキングモード
- レスポンス
- 200: 成功
- 422: バリデーションエラー
講義関連
/lecture/stat/{lecture_id}- メソッド: GET
- タグ: Lecture
- サマリー: 指定された講義の統計情報を取得する
- パラメータ
lecture_id(path): 講義IDuser_id(query): ユーザIDget_reaction(query): 反応を取得するかどうか (デフォルト: false)
- レスポンス
- 200: 成功
- 422: バリデーションエラー
/lecture/list- メソッド: GET
- タグ: Lecture
- サマリー: 全ての講義リストを取得する
- パラメータ
user_id(query): ユーザIDdisable_visibility_check(query): 可視性チェックを無効にするかどうか (デフォルト: false)
- レスポンス
- 200: 成功
- 422: バリデーションエラー
/lecture/start- メソッド: POST
- タグ: Lecture
- サマリー: 指定したユーザ・講義の開始時刻を記録する
- リクエストボディ
user_id(必須): ユーザIDlecture_id(必須): 講義IDattempt(必須): 試行回数autocommit(デフォルト: true): 自動コミットするかどうか
- レスポンス
- 200: 成功
- 422: バリデーションエラー
/lecture/submit- メソッド: POST
- タグ: Lecture
- サマリー: 指定したユーザ・講義の終了時刻を記録する
- リクエストボディ
user_id(必須): ユーザIDlecture(必須): 講義autocommit(デフォルト: true): 自動コミットするかどうか
- レスポンス
- 200: 成功
- 422: バリデーションエラー
/lecture/create_self- メソッド: POST
- タグ: Lecture
- サマリー: 講義を作成する
- リクエストボディ
lecture_name(必須): 講義名lecture_owner(必須): 講義の作成者lecture_raw_data(必須): 講義のrawデータ
- レスポンス
- 200: 成功
- 422: バリデーションエラー
教師関連
/teacher/jwt- メソッド: POST
- タグ: Teacher
- サマリー: JWTを用いて教師を認証する
- リクエストボディ
teacher_name(必須): 教師名teacher_pass(必須): 教師パスワード
- レスポンス
- 200: 成功
- 422: バリデーションエラー
/teacher/jwt/verify- メソッド: POST
- タグ: Teacher
- サマリー: 教師のJWTを検証する
- リクエストボディ
token(必須): トークン
- レスポンス
- 200: 成功
- 422: バリデーションエラー
/teacher/lecture/submit- メソッド: POST
- タグ: Teacher
- サマリー: 教師の講義を提出する
- リクエストボディ
teacher_jwt(必須): 教師のJWTlecture_id(必須): 講義IDattempt(必須): 試行回数student_id(必須): 学生IDreactions(必須): 反応
- レスポンス
- 200: 成功
- 422: バリデーションエラー
/teacher/lecture/create- メソッド: POST
- タグ: Teacher
- サマリー: 教師の講義を作成する
- リクエストボディ
teacher_jwt(必須): 教師のJWTlecture_visible(必須): 講義を表示するかどうかlecture_shuffle(必須): 問題をシャッフルするかどうかlecture_permit_practice(必須): 練習問題を許可するかどうかlecture_permit_exam(必須): 試験問題を許可するかどうかlecture_ichimon(必須): 一問ずつ表示するかどうかlecture_name(必須): 講義名lecture_owner(必須): 講義の作成者lecture_description(必須): 講義の説明lecture_raw_data(必須): 講義のrawデータ
- レスポンス
- 200: 成功
- 422: バリデーションエラー
/teacher/lecture/edit- メソッド: POST
- タグ: Teacher
- サマリー: 教師の講義を編集する
- リクエストボディ
teacher_jwt(必須): 教師のJWTlecture_id(必須): 講義IDlecture_ichimon(必須): 一問ずつ表示するかどうかlecture_visible(必須): 講義を表示するかどうかlecture_name(必須): 講義名lecture_owner(必須): 講義の作成者lecture_description(必須): 講義の説明lecture_shuffle(必須): 問題をシャッフルするかどうかlecture_permit_practice(必須): 練習問題を許可するかどうかlecture_permit_exam(必須): 試験問題を許可するかどうか
- レスポンス
- 200: 成功
- 422: バリデーションエラー
/teacher/lecture/results- メソッド: POST
- タグ: Teacher
- サマリー: 教師の講義の結果を取得する
- リクエストボディ
teacher_jwt(必須): 教師のJWT
- レスポンス
- 200: 成功
- 422: バリデーションエラー
/teacher/lecture/{lecture_id}.pdf- メソッド: POST
- タグ: Teacher
- サマリー: 教師がPDFを取得する
- パラメータ
lecture_id(path): 講義ID
- リクエストボディ
teacher_jwt(必須): 教師のJWTprint_answer_box(デフォルト: true): 解答欄を出力するかどうかprint_first_description(デフォルト: true): 最初の説明を出力するかどうかprint_body_description(デフォルト: true): 本文の説明を出力するかどうかprint_direct_download(デフォルト: true): 直接ダウンロードを許可するかどうかprint_problem_no(デフォルト: true): 問題番号を出力するかどうかprint_name_area(デフォルト: true): 氏名欄を出力するかどうか
- レスポンス
- 200: 成功
- 422: バリデーションエラー
教師AI関連
/teacher/ai/student_growth/batch- メソッド: GET
- タグ: Teacher_AI
- サマリー: 学生の成長を取得する
- レスポンス
- 200: 成功
/teacher/ai/student_growth/batch- メソッド: POST
- タグ: Teacher_AI
- サマリー: 学生の成長を投稿する
- レスポンス
- 200: 成功
/teacher/ai/student_growth/direct- メソッド: GET
- タグ: Teacher_AI
- サマリー: 学生の成長を取得する
- パラメータ
elapsed_days(query, 必須): 経過日数now_ratio(query, 必須): 現在の比率b3_ratio(query, 必須): B3の比率norm_avg(query, 必須): 正規化された平均値b2_ratio(query, 必須): B2の比率b1_ratio(query, 必須): B1の比率
- レスポンス
- 200: 成功
- 422: バリデーションエラー
学生関連
/student/{user_id}- メソッド: GET
- タグ: Student
- サマリー: 学生の情報を取得する
- パラメータ
user_id(path): ユーザID
- レスポンス
- 200: 成功
- 422: バリデーションエラー
/student/{user_id}- メソッド: POST
- タグ: Student
- サマリー: 学生の情報を登録する
- パラメータ
user_id(path): ユーザID
- リクエストボディ
department(必須): 学科entrance_year(必須): 入学年度class_number(必須): クラス番号last_name(必須): 苗字
- レスポンス
- 200: 成功
- 422: バリデーションエラー
アセット関連
/toi_asset/fe_am/{year}/{month}/{problem_number}.webp- メソッド: GET
- サマリー: FE/AMアイテムを読み込む
- パラメータ
year(path): 年month(path): 月problem_number(path): 問題番号
- レスポンス
- 200: 成功
- 422: バリデーションエラー
/toi_asset/{category}/{year}/{month}/{problem_number}.webp- メソッド: GET
- サマリー: APアイテムを読み込む
- パラメータ
category(path): カテゴリーyear(path): 年month(path): 月problem_number(path): 問題番号
- レスポンス
- 200: 成功
- 422: バリデーションエラー
その他
/system_in.pdf- メソッド: GET
- サマリー: デフォルトのPDFを取得する
- レスポンス
- 200: 成功
/pgadmin4-login- メソッド: GET
- サマリー: pgAdmin4のログインページ
- レスポンス
- 200: 成功
/- メソッド: GET
- サマリー: インデックスページ
- レスポンス
- 200: 成功
データスキーマ
このAPIでは、いくつかのデータスキーマが定義されています。詳細については、OpenAPIドキュメントを参照してください。
エラー処理
APIリクエストでエラーが発生した場合、422 Unprocessable Entityステータスコードと、エラーの詳細を含むJSONレスポンスが返されます。
バージョン情報
- タイトル: FastAPI
- バージョン: 0.1.0
注意点
このドキュメントは自動生成されたものであり、最新の情報とは異なる場合があります。