From df6e357e7951511d916e5d3b0aca3bf293c629e7 Mon Sep 17 00:00:00 2001 From: ToYama170402 Date: Thu, 6 Nov 2025 23:17:43 +0900 Subject: [PATCH 01/17] =?UTF-8?q?=E7=8F=BE=E7=8A=B6=E3=81=AE=E4=BB=95?= =?UTF-8?q?=E6=A7=98=E3=82=92=E3=81=BE=E3=81=A8=E3=82=81=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syllabus-backend/doc/api.yml | 242 +++++++++++++++++++++++++++++++++++ 1 file changed, 242 insertions(+) create mode 100644 syllabus-backend/doc/api.yml diff --git a/syllabus-backend/doc/api.yml b/syllabus-backend/doc/api.yml new file mode 100644 index 00000000..b5bb0349 --- /dev/null +++ b/syllabus-backend/doc/api.yml @@ -0,0 +1,242 @@ + +openapi: "3.0.3" +info: + title: Rishu Syllabus API + version: "1.0.0" + description: "API specification for syllabus-backend (subset: /courses)" + +servers: + - url: http://api.*:8080 + description: API for rishu-app + +paths: + /courses: + get: + summary: List courses + operationId: GetCourses + responses: + '200': + description: A list of courses + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Course' + '500': + description: Internal server error + content: + application/json: + schema: + type: object + properties: + error: + type: string + + post: + summary: Create courses (bulk) + operationId: CreateCourses + requestBody: + required: true + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Course' + responses: + '200': + description: Creation result + content: + application/json: + schema: + type: object + properties: + status: + type: string + example: success + course: + type: array + items: + $ref: '#/components/schemas/CourseResponse' + '400': + description: Bad request (invalid JSON) + content: + application/json: + schema: + type: object + properties: + error: + type: string + '500': + description: Internal server error + content: + application/json: + schema: + type: object + properties: + error: + type: string + +components: + schemas: + Course: + type: object + properties: + courseId: + type: integer + year: + type: integer + title: + type: string + numbering: + type: string + courseNumber: + type: string + numberOfProper: + type: integer + semester: + type: array + items: + type: integer + numberOfCredits: + type: integer + note: + type: string + japaneseUrl: + type: string + englishUrl: + type: string + openAccount: + type: string + max60CreditsFlag: + type: string + subjectDistinguished: + type: string + courseDescription: + type: string + instructors: + type: array + items: + $ref: '#/components/schemas/Instructor' + schedules: + type: array + items: + $ref: '#/components/schemas/Schedule' + classFormat: + type: string + lectureForm: + type: string + targetStudents: + type: string + lectureRoomInfo: + type: string + faculty: + $ref: '#/components/schemas/Faculty' + keywords: + type: array + items: + type: string + required: + - year + - title + - numbering + - courseNumber + - semester + - numberOfCredits + - japaneseUrl + - englishUrl + - courseDescription + - instructors + - schedules + - lectureRoomInfo + - faculty + + CourseResponse: + type: object + properties: + courseId: + type: integer + year: + type: integer + title: + type: string + numbering: + type: string + courseNumber: + type: string + numberOfProper: + type: integer + semester: + type: array + items: + type: integer + numberOfCredits: + type: integer + note: + type: string + japaneseUrl: + type: string + englishUrl: + type: string + openAccount: + type: string + max60CreditsFlag: + type: string + subjectDistinguished: + type: string + courseDescription: + type: string + instructors: + type: array + items: + $ref: '#/components/schemas/Instructor' + schedules: + type: array + items: + $ref: '#/components/schemas/Schedule' + classFormat: + type: string + lectureForm: + type: string + targetStudents: + type: string + lectureRoomInfo: + type: string + faculty: + $ref: '#/components/schemas/Faculty' + keywords: + type: array + items: + type: string + + Instructor: + type: object + properties: + name: + type: string + required: + - name + + Schedule: + type: object + properties: + day: + type: string + period: + type: integer + required: + - day + - period + + Faculty: + type: object + properties: + faculty: + type: string + department: + type: string + required: + - faculty + + From deb2eeb94c7f83c613d7882e17b9f70481932db9 Mon Sep 17 00:00:00 2001 From: ToYama170402 Date: Fri, 7 Nov 2025 00:19:42 +0900 Subject: [PATCH 02/17] =?UTF-8?q?=E5=9E=8B=E3=81=AE=E5=BC=B7=E5=8C=96?= =?UTF-8?q?=E3=81=A8=E8=A9=B3=E3=81=97=E3=81=84=E8=AA=AC=E6=98=8E=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syllabus-backend/doc/api.yml | 67 ++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/syllabus-backend/doc/api.yml b/syllabus-backend/doc/api.yml index b5bb0349..0ad73d2c 100644 --- a/syllabus-backend/doc/api.yml +++ b/syllabus-backend/doc/api.yml @@ -90,10 +90,13 @@ components: title: type: string numbering: + description: 科目ナンバリング type: string courseNumber: + description: 講義番号 type: string numberOfProper: + description: 適正人数 type: integer semester: type: array @@ -105,13 +108,18 @@ components: type: string japaneseUrl: type: string + format: uri englishUrl: type: string + format: uri openAccount: + description: 開放科目 type: string max60CreditsFlag: + description: 60単位上限 type: string subjectDistinguished: + description: 科目区分 type: string courseDescription: type: string @@ -124,12 +132,15 @@ components: items: $ref: '#/components/schemas/Schedule' classFormat: + description: 授業形態 type: string lectureForm: + description: 講義形態 type: string targetStudents: type: string lectureRoomInfo: + description: 講義室情報 type: string faculty: $ref: '#/components/schemas/Faculty' @@ -156,16 +167,21 @@ components: type: object properties: courseId: + description: Unique identifier for the course (独自ID) type: integer + readOnly: true year: type: integer title: type: string numbering: + description: 科目ナンバリング type: string courseNumber: + description: 講義番号 type: string numberOfProper: + description: 適正人数 type: integer semester: type: array @@ -177,13 +193,18 @@ components: type: string japaneseUrl: type: string + format: uri englishUrl: type: string + format: uri openAccount: + description: 開放科目 type: string max60CreditsFlag: + description: 60単位上限 type: string subjectDistinguished: + description: 科目区分 type: string courseDescription: type: string @@ -196,12 +217,15 @@ components: items: $ref: '#/components/schemas/Schedule' classFormat: + description: 授業形態 type: string lectureForm: + description: 講義形態 type: string targetStudents: type: string lectureRoomInfo: + description: 講義室情報 type: string faculty: $ref: '#/components/schemas/Faculty' @@ -223,8 +247,25 @@ components: properties: day: type: string + enum: + - 月 + - 火 + - 水 + - 木 + - 金 + - 土 + - 日 period: type: integer + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 required: - day - period @@ -234,8 +275,34 @@ components: properties: faculty: type: string + enum: + - 先導学類 + - 観光デザイン学類 + - スマート創成科学類 + - 数物科学類 + - 物質科学類 + - 機械工学類 + - フロンティア工学類 + - 電子情報通信学類 + - 地球社会基盤学類 + - 生命理工学類 + - 人文学類 + - 法学類 + - 経済学類 + - 学校教育学類 + - 地域想像学類 + - 国際学類 + - 医学類 + - 約学類 + - 医薬化学類 + - 保健学類 department: type: string + enum: + - 融合学域 + - 理工学域 + - 人間社会学域 + - 医薬保健学域 required: - faculty From c57c1c6ba5d1c5432cade8334151f4effd372f2b Mon Sep 17 00:00:00 2001 From: ToYama170402 Date: Fri, 7 Nov 2025 00:20:31 +0900 Subject: [PATCH 03/17] =?UTF-8?q?GET=20/courses=20=E3=81=AB=E3=82=AF?= =?UTF-8?q?=E3=82=A8=E3=83=AA=E3=83=91=E3=83=A9=E3=83=A1=E3=83=BC=E3=82=BF?= =?UTF-8?q?=E3=81=AB=E3=82=88=E3=82=8B=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF?= =?UTF-8?q?=E3=83=BC=E3=81=AE=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syllabus-backend/doc/api.yml | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/syllabus-backend/doc/api.yml b/syllabus-backend/doc/api.yml index 0ad73d2c..7cb80471 100644 --- a/syllabus-backend/doc/api.yml +++ b/syllabus-backend/doc/api.yml @@ -14,6 +14,45 @@ paths: get: summary: List courses operationId: GetCourses + parameters: + - name: year + in: query + description: Academic year (e.g., 2023) + required: false + schema: + type: integer + - name: quarter + in: query + description: "quarter (Q1~Q4), e.g., 1 for Q1" + required: false + schema: + type: integer + - name: department + in: query + description: Department name (e.g., "融合学域") + required: false + schema: + type: string + - name: faculty + in: query + description: Faculty name (e.g., "スマート創成科学類") + required: false + schema: + type: string + - name: limit + in: query + description: Maximum number of courses to return + required: false + schema: + type: integer + default: 100 + - name: offset + in: query + description: Number of courses to skip before starting to collect the result set + required: false + schema: + type: integer + default: 0 responses: '200': description: A list of courses From 7cdac4918a92ee0b343693818cd92fdd9a295d1d Mon Sep 17 00:00:00 2001 From: ToYama170402 Date: Fri, 7 Nov 2025 00:22:26 +0900 Subject: [PATCH 04/17] =?UTF-8?q?GET=20/courses=20=E3=81=AE=E3=83=AC?= =?UTF-8?q?=E3=82=B9=E3=83=9D=E3=83=B3=E3=82=B9=E3=82=92=E3=82=88=E3=82=8A?= =?UTF-8?q?=E8=A6=AA=E5=88=87=E3=81=AB=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syllabus-backend/doc/api.yml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/syllabus-backend/doc/api.yml b/syllabus-backend/doc/api.yml index 7cb80471..08f64711 100644 --- a/syllabus-backend/doc/api.yml +++ b/syllabus-backend/doc/api.yml @@ -59,9 +59,18 @@ paths: content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/Course' + type: object + properties: + total: + type: integer + limit: + type: integer + offset: + type: integer + courses: + type: array + items: + $ref: '#/components/schemas/CourseResponse' '500': description: Internal server error content: @@ -94,7 +103,7 @@ paths: status: type: string example: success - course: + courses: type: array items: $ref: '#/components/schemas/CourseResponse' From 862353fa8a960c4a1ee483c46b4306a102a7e8f4 Mon Sep 17 00:00:00 2001 From: ToYama170402 Date: Fri, 7 Nov 2025 00:23:25 +0900 Subject: [PATCH 05/17] =?UTF-8?q?=E3=82=88=E3=82=8A=E5=8E=B3=E5=AF=86?= =?UTF-8?q?=E3=81=AA=E3=82=B9=E3=83=86=E3=83=BC=E3=82=BF=E3=82=B9=E3=82=B3?= =?UTF-8?q?=E3=83=BC=E3=83=89=E3=82=92=E8=BF=94=E3=81=99=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syllabus-backend/doc/api.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syllabus-backend/doc/api.yml b/syllabus-backend/doc/api.yml index 08f64711..a2f3b660 100644 --- a/syllabus-backend/doc/api.yml +++ b/syllabus-backend/doc/api.yml @@ -93,7 +93,7 @@ paths: items: $ref: '#/components/schemas/Course' responses: - '200': + '201': description: Creation result content: application/json: From 6cc64719bed5c2062e646dcaa98284a2187464aa Mon Sep 17 00:00:00 2001 From: ToYama170402 Date: Fri, 7 Nov 2025 00:23:49 +0900 Subject: [PATCH 06/17] =?UTF-8?q?=E3=82=88=E3=82=8A=E5=85=B7=E4=BD=93?= =?UTF-8?q?=E7=9A=84=E3=81=AA=E3=82=A8=E3=83=A9=E3=83=BC=E3=83=A1=E3=83=83?= =?UTF-8?q?=E3=82=BB=E3=83=BC=E3=82=B8=E3=82=92=E8=BF=94=E3=81=99=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syllabus-backend/doc/api.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/syllabus-backend/doc/api.yml b/syllabus-backend/doc/api.yml index a2f3b660..f7990647 100644 --- a/syllabus-backend/doc/api.yml +++ b/syllabus-backend/doc/api.yml @@ -116,6 +116,17 @@ paths: properties: error: type: string + details: + type: array + items: + type: object + properties: + index: + type: integer + field: + type: string + message: + type: string '500': description: Internal server error content: From b15c123bcdc58aeb536ed172594916fa8d3f694f Mon Sep 17 00:00:00 2001 From: ToYama170402 Date: Fri, 7 Nov 2025 00:24:26 +0900 Subject: [PATCH 07/17] =?UTF-8?q?=E5=85=A5=E5=8A=9B=E3=83=87=E3=83=BC?= =?UTF-8?q?=E3=82=BF=E3=81=A8=E3=81=97=E3=81=A6=E3=81=AECourse=E3=82=AA?= =?UTF-8?q?=E3=83=96=E3=82=B8=E3=82=A7=E3=82=AF=E3=83=88=E3=81=AB=E3=81=AF?= =?UTF-8?q?=E4=B8=8D=E8=A6=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syllabus-backend/doc/api.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/syllabus-backend/doc/api.yml b/syllabus-backend/doc/api.yml index f7990647..fd133a5d 100644 --- a/syllabus-backend/doc/api.yml +++ b/syllabus-backend/doc/api.yml @@ -142,8 +142,6 @@ components: Course: type: object properties: - courseId: - type: integer year: type: integer title: From d7d1fce1f03f2c1728675623efa686ccb9820ca3 Mon Sep 17 00:00:00 2001 From: ToYama170402 Date: Fri, 7 Nov 2025 00:30:11 +0900 Subject: [PATCH 08/17] =?UTF-8?q?/course/{courseId}=20=E3=81=ABGET/PUT/DEL?= =?UTF-8?q?ETE=E3=82=92=E5=8F=97=E3=81=91=E4=BB=98=E3=81=91=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syllabus-backend/doc/api.yml | 109 +++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) diff --git a/syllabus-backend/doc/api.yml b/syllabus-backend/doc/api.yml index fd133a5d..858d300d 100644 --- a/syllabus-backend/doc/api.yml +++ b/syllabus-backend/doc/api.yml @@ -137,6 +137,115 @@ paths: error: type: string + /courses/{courseId}: + get: + summary: Get course by ID + operationId: GetCourseById + parameters: + - name: courseId + in: path + description: Unique identifier for the course + required: true + schema: + type: integer + responses: + '200': + description: Course details + content: + application/json: + schema: + $ref: '#/components/schemas/CourseResponse' + '404': + description: Course not found + content: + application/json: + schema: + type: object + properties: + error: + type: string + '500': + description: Internal server error + content: + application/json: + schema: + type: object + properties: + error: + type: string + put: + summary: Update course by ID + operationId: UpdateCourseById + parameters: + - name: courseId + in: path + description: Unique identifier for the course + required: true + schema: + type: integer + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/Course' + responses: + '200': + description: Course updated successfully + content: + application/json: + schema: + $ref: '#/components/schemas/CourseResponse' + '404': + description: Course not found + content: + application/json: + schema: + type: object + properties: + error: + type: string + '500': + description: Internal server error + content: + application/json: + schema: + type: object + properties: + error: + type: string + delete: + summary: Delete course by ID + operationId: DeleteCourseById + parameters: + - name: courseId + in: path + description: Unique identifier for the course + required: true + schema: + type: integer + responses: + '204': + description: Course deleted successfully + '404': + description: Course not found + content: + application/json: + schema: + type: object + properties: + error: + type: string + '500': + description: Internal server error + content: + application/json: + schema: + type: object + properties: + error: + type: string + components: schemas: Course: From 9b06fd01653433be660d58e7753fd69ec4f12b2b Mon Sep 17 00:00:00 2001 From: ToYama170402 Date: Fri, 7 Nov 2025 00:32:28 +0900 Subject: [PATCH 09/17] =?UTF-8?q?=E8=AA=A4=E5=AD=97=E3=81=AE=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syllabus-backend/doc/api.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syllabus-backend/doc/api.yml b/syllabus-backend/doc/api.yml index 858d300d..b1872f20 100644 --- a/syllabus-backend/doc/api.yml +++ b/syllabus-backend/doc/api.yml @@ -459,7 +459,7 @@ components: - 地域想像学類 - 国際学類 - 医学類 - - 約学類 + - 薬学類 - 医薬化学類 - 保健学類 department: From 39ec0dc9409fbcc82b190a533e3e001ccba50543 Mon Sep 17 00:00:00 2001 From: ToYama170402 Date: Fri, 7 Nov 2025 00:34:01 +0900 Subject: [PATCH 10/17] =?UTF-8?q?=E3=83=95=E3=82=A9=E3=83=BC=E3=83=9E?= =?UTF-8?q?=E3=83=83=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syllabus-backend/doc/api.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/syllabus-backend/doc/api.yml b/syllabus-backend/doc/api.yml index b1872f20..b28f228e 100644 --- a/syllabus-backend/doc/api.yml +++ b/syllabus-backend/doc/api.yml @@ -80,7 +80,6 @@ paths: properties: error: type: string - post: summary: Create courses (bulk) operationId: CreateCourses From 2fe16c36375d5f3a7f16b228795db7f6148b635d Mon Sep 17 00:00:00 2001 From: ToYama <100946113+ToYama170402@users.noreply.github.com> Date: Mon, 10 Nov 2025 10:14:19 +0900 Subject: [PATCH 11/17] =?UTF-8?q?=E8=AA=A4=E5=AD=97=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- syllabus-backend/doc/api.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syllabus-backend/doc/api.yml b/syllabus-backend/doc/api.yml index b28f228e..49295670 100644 --- a/syllabus-backend/doc/api.yml +++ b/syllabus-backend/doc/api.yml @@ -455,7 +455,7 @@ components: - 法学類 - 経済学類 - 学校教育学類 - - 地域想像学類 + - 地域創造学類 - 国際学類 - 医学類 - 薬学類 From 0fc40702da1d2741d3f0520a3f3050e5ae8ca0f2 Mon Sep 17 00:00:00 2001 From: ToYama170402 Date: Wed, 31 Dec 2025 20:33:59 +0900 Subject: [PATCH 12/17] =?UTF-8?q?POST=20/courses=E3=81=AE=E3=83=AA?= =?UTF-8?q?=E3=82=AF=E3=82=A8=E3=82=B9=E3=83=88=E3=82=92course=E3=81=AE?= =?UTF-8?q?=E9=85=8D=E5=88=97=E3=81=9D=E3=81=AE=E3=82=82=E3=81=AE=E3=81=8B?= =?UTF-8?q?=E3=82=89=E3=82=AA=E3=83=96=E3=82=B8=E3=82=A7=E3=82=AF=E3=83=88?= =?UTF-8?q?=E3=81=A7=E5=8C=85=E3=82=93=E3=81=A0=E3=82=82=E3=81=AE=E3=82=92?= =?UTF-8?q?=E5=8F=97=E3=81=91=E4=BB=98=E3=81=91=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB=E5=A4=89=E6=9B=B4=20=E4=BB=96=E3=81=AE=E3=83=AC?= =?UTF-8?q?=E3=82=B9=E3=83=9D=E3=83=B3=E3=82=B9=E3=81=AE=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E3=81=A8=E6=8F=83=E3=81=88=E3=82=8B=E3=81=9F=E3=82=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syllabus-backend/doc/api.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/syllabus-backend/doc/api.yml b/syllabus-backend/doc/api.yml index 49295670..9fc4c7ca 100644 --- a/syllabus-backend/doc/api.yml +++ b/syllabus-backend/doc/api.yml @@ -88,9 +88,12 @@ paths: content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/Course' + type: object + properties: + courses: + type: array + items: + $ref: '#/components/schemas/Course' responses: '201': description: Creation result From 8992e5799ce8ea19b0600813336d3cbc321554ac Mon Sep 17 00:00:00 2001 From: ToYama170402 Date: Wed, 31 Dec 2025 20:35:06 +0900 Subject: [PATCH 13/17] =?UTF-8?q?=E3=83=AC=E3=82=B9=E3=83=9D=E3=83=B3?= =?UTF-8?q?=E3=82=B9=E3=83=9C=E3=83=87=E3=82=A3=E5=86=85=E3=81=8B=E3=82=89?= =?UTF-8?q?=E6=88=90=E5=90=A6=E3=82=92=E8=A1=A8=E3=81=99=E3=83=97=E3=83=AD?= =?UTF-8?q?=E3=83=91=E3=83=86=E3=82=A3=E3=82=92=E5=89=8A=E9=99=A4=20?= =?UTF-8?q?=E3=83=98=E3=83=83=E3=83=80=E3=81=A7=E8=A1=A8=E7=8F=BE=E3=81=A7?= =?UTF-8?q?=E3=81=8D=E3=82=8B=E3=81=8B=E3=82=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syllabus-backend/doc/api.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/syllabus-backend/doc/api.yml b/syllabus-backend/doc/api.yml index 9fc4c7ca..e5c2a457 100644 --- a/syllabus-backend/doc/api.yml +++ b/syllabus-backend/doc/api.yml @@ -102,9 +102,6 @@ paths: schema: type: object properties: - status: - type: string - example: success courses: type: array items: From c07dcf05c53049326c538f32e82c58165d16a7f8 Mon Sep 17 00:00:00 2001 From: ToYama170402 Date: Wed, 31 Dec 2025 20:44:51 +0900 Subject: [PATCH 14/17] =?UTF-8?q?API=E3=81=AE=E3=83=9B=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=82=92Open=20API=E3=81=AE=E4=BB=95=E6=A7=98=E3=81=AB?= =?UTF-8?q?=E6=B2=BF=E3=81=A3=E3=81=9F=E6=9B=B8=E3=81=8D=E6=96=B9=E3=81=AB?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syllabus-backend/doc/api.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syllabus-backend/doc/api.yml b/syllabus-backend/doc/api.yml index e5c2a457..a40544a6 100644 --- a/syllabus-backend/doc/api.yml +++ b/syllabus-backend/doc/api.yml @@ -6,7 +6,7 @@ info: description: "API specification for syllabus-backend (subset: /courses)" servers: - - url: http://api.*:8080 + - url: http://{apiHost}:8080 description: API for rishu-app paths: From 2570ec08520d800f3b5101271eb0a6a826c49158 Mon Sep 17 00:00:00 2001 From: ToYama170402 Date: Wed, 31 Dec 2025 21:01:58 +0900 Subject: [PATCH 15/17] =?UTF-8?q?enum=E3=81=A7=E5=88=B6=E7=B4=84=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syllabus-backend/doc/api.yml | 41 ++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/syllabus-backend/doc/api.yml b/syllabus-backend/doc/api.yml index a40544a6..f00e10c5 100644 --- a/syllabus-backend/doc/api.yml +++ b/syllabus-backend/doc/api.yml @@ -27,18 +27,49 @@ paths: required: false schema: type: integer + enum: + - 1 + - 2 + - 3 + - 4 - name: department in: query description: Department name (e.g., "融合学域") required: false schema: type: string + enum: + - 融合学域 + - 理工学域 + - 人間社会学域 + - 医薬保健学域 - name: faculty in: query description: Faculty name (e.g., "スマート創成科学類") required: false schema: type: string + enum: + - 先導学類 + - 観光デザイン学類 + - スマート創成科学類 + - 数物科学類 + - 物質科学類 + - 機械工学類 + - フロンティア工学類 + - 電子情報通信学類 + - 地球社会基盤学類 + - 生命理工学類 + - 人文学類 + - 法学類 + - 経済学類 + - 学校教育学類 + - 地域創造学類 + - 国際学類 + - 医学類 + - 薬学類 + - 医薬化学類 + - 保健学類 - name: limit in: query description: Maximum number of courses to return @@ -267,6 +298,11 @@ components: type: array items: type: integer + enum: + - 1 + - 2 + - 3 + - 4 numberOfCredits: type: integer note: @@ -352,6 +388,11 @@ components: type: array items: type: integer + enum: + - 1 + - 2 + - 3 + - 4 numberOfCredits: type: integer note: From 81ce88717b3bda5dad7c870aabdcf3df8c7d777a Mon Sep 17 00:00:00 2001 From: ToYama170402 Date: Wed, 31 Dec 2025 21:02:49 +0900 Subject: [PATCH 16/17] =?UTF-8?q?limit=E3=81=A8offset=E3=81=AB=E5=88=B6?= =?UTF-8?q?=E9=99=90=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syllabus-backend/doc/api.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/syllabus-backend/doc/api.yml b/syllabus-backend/doc/api.yml index f00e10c5..a6f60439 100644 --- a/syllabus-backend/doc/api.yml +++ b/syllabus-backend/doc/api.yml @@ -77,6 +77,7 @@ paths: schema: type: integer default: 100 + maximum: 1000 - name: offset in: query description: Number of courses to skip before starting to collect the result set @@ -84,6 +85,7 @@ paths: schema: type: integer default: 0 + minimum: 0 responses: '200': description: A list of courses From 5cc89443c051a2ac876eaba0f1e75cec84b06312 Mon Sep 17 00:00:00 2001 From: ToYama170402 Date: Wed, 31 Dec 2025 22:43:17 +0900 Subject: [PATCH 17/17] =?UTF-8?q?=E7=A8=AE=E3=80=85=E3=81=AE=E5=AE=9A?= =?UTF-8?q?=E7=BE=A9=E3=82=92=E4=B8=80=E3=81=A4=E3=81=AE=E5=A0=B4=E6=89=80?= =?UTF-8?q?=E3=81=AB=E3=81=BE=E3=81=A8=E3=82=81=E3=81=9F=20=E3=83=A1?= =?UTF-8?q?=E3=83=B3=E3=83=86=E3=83=8A=E3=83=B3=E3=82=B9=E6=80=A7=E3=82=92?= =?UTF-8?q?=E5=90=91=E4=B8=8A=E3=81=95=E3=81=9B=E3=82=8B=E3=81=9F=E3=82=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syllabus-backend/doc/api.yml | 196 ++++++++++------------------------- 1 file changed, 54 insertions(+), 142 deletions(-) diff --git a/syllabus-backend/doc/api.yml b/syllabus-backend/doc/api.yml index a6f60439..78cefad9 100644 --- a/syllabus-backend/doc/api.yml +++ b/syllabus-backend/doc/api.yml @@ -26,50 +26,19 @@ paths: description: "quarter (Q1~Q4), e.g., 1 for Q1" required: false schema: - type: integer - enum: - - 1 - - 2 - - 3 - - 4 + $ref: '#/components/schemas/Quarter' - name: department in: query description: Department name (e.g., "融合学域") required: false schema: - type: string - enum: - - 融合学域 - - 理工学域 - - 人間社会学域 - - 医薬保健学域 + $ref: '#/components/schemas/DepartmentName' - name: faculty in: query description: Faculty name (e.g., "スマート創成科学類") required: false schema: - type: string - enum: - - 先導学類 - - 観光デザイン学類 - - スマート創成科学類 - - 数物科学類 - - 物質科学類 - - 機械工学類 - - フロンティア工学類 - - 電子情報通信学類 - - 地球社会基盤学類 - - 生命理工学類 - - 人文学類 - - 法学類 - - 経済学類 - - 学校教育学類 - - 地域創造学類 - - 国際学類 - - 医学類 - - 薬学類 - - 医薬化学類 - - 保健学類 + $ref: '#/components/schemas/FacultyName' - name: limit in: query description: Maximum number of courses to return @@ -299,12 +268,7 @@ components: semester: type: array items: - type: integer - enum: - - 1 - - 2 - - 3 - - 4 + $ref: '#/components/schemas/Quarter' numberOfCredits: type: integer note: @@ -367,80 +331,16 @@ components: - faculty CourseResponse: - type: object - properties: - courseId: - description: Unique identifier for the course (独自ID) - type: integer - readOnly: true - year: - type: integer - title: - type: string - numbering: - description: 科目ナンバリング - type: string - courseNumber: - description: 講義番号 - type: string - numberOfProper: - description: 適正人数 - type: integer - semester: - type: array - items: - type: integer - enum: - - 1 - - 2 - - 3 - - 4 - numberOfCredits: - type: integer - note: - type: string - japaneseUrl: - type: string - format: uri - englishUrl: - type: string - format: uri - openAccount: - description: 開放科目 - type: string - max60CreditsFlag: - description: 60単位上限 - type: string - subjectDistinguished: - description: 科目区分 - type: string - courseDescription: - type: string - instructors: - type: array - items: - $ref: '#/components/schemas/Instructor' - schedules: - type: array - items: - $ref: '#/components/schemas/Schedule' - classFormat: - description: 授業形態 - type: string - lectureForm: - description: 講義形態 - type: string - targetStudents: - type: string - lectureRoomInfo: - description: 講義室情報 - type: string - faculty: - $ref: '#/components/schemas/Faculty' - keywords: - type: array - items: - type: string + allOf: + - $ref: '#/components/schemas/Course' + - type: object + properties: + courseId: + type: integer + readOnly: true + description: 独自ID + required: + - courseId Instructor: type: object @@ -482,36 +382,48 @@ components: type: object properties: faculty: - type: string - enum: - - 先導学類 - - 観光デザイン学類 - - スマート創成科学類 - - 数物科学類 - - 物質科学類 - - 機械工学類 - - フロンティア工学類 - - 電子情報通信学類 - - 地球社会基盤学類 - - 生命理工学類 - - 人文学類 - - 法学類 - - 経済学類 - - 学校教育学類 - - 地域創造学類 - - 国際学類 - - 医学類 - - 薬学類 - - 医薬化学類 - - 保健学類 + $ref: '#/components/schemas/FacultyName' department: - type: string - enum: - - 融合学域 - - 理工学域 - - 人間社会学域 - - 医薬保健学域 + $ref: '#/components/schemas/DepartmentName' required: - faculty + FacultyName: + type: string + enum: + - 先導学類 + - 観光デザイン学類 + - スマート創成科学類 + - 数物科学類 + - 物質科学類 + - 機械工学類 + - フロンティア工学類 + - 電子情報通信学類 + - 地球社会基盤学類 + - 生命理工学類 + - 人文学類 + - 法学類 + - 経済学類 + - 学校教育学類 + - 地域創造学類 + - 国際学類 + - 医学類 + - 薬学類 + - 医薬化学類 + - 保健学類 + + DepartmentName: + type: string + enum: + - 融合学域 + - 理工学域 + - 人間社会学域 + - 医薬保健学域 + Quarter: + type: integer + enum: + - 1 + - 2 + - 3 + - 4 \ No newline at end of file