Skip to content

REST API

SangYeon Min edited this page Oct 28, 2024 · 82 revisions

1. Introduction

๋‹ค์Œ์€ HEARUS-SPRING-BACKEND ํ”„๋กœ์ ํŠธ์˜ ๊ณต์‹ API ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ์—์„œ๋Š” API ์—”๋“œํฌ์ธํŠธ์™€ API ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. Endpoints Overview

๊ฐ ์—”๋“œํฌ์ธํŠธ์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ๋ฆฌ์ŠคํŠธ์™€ ์„ค๋ช…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • User Endpoints: /users, /login
  • Product Endpoints: /products, /products/{id}
  • Order Endpoints: /orders, /orders/{id}

๊ฐ ์—”๋“œํฌ์ธํŠธ์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์„ค๋ช…๊ณผ HTTP ๋ฉ”์„œ๋“œ(GET, POST ๋“ฑ)๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

3. Error Handling

Hearus Spring Backend ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ณตํ†ต์ ์ธ ์—๋Ÿฌ ์ฝ”๋“œ๋“ค์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • 400 Bad Request: ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ์˜ค๋ฅ˜. (ํ•„์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ˆ„๋ฝ ๋“ฑ)
  • 401 Unauthorized: ์ธ์ฆ ์˜ค๋ฅ˜. (Bearer ํ† ํฐ ์ธ์ฆ ์‹คํŒจ, ํ† ํฐ ๋ˆ„๋ฝ ๋“ฑ)
  • 404 Not Found: ๋ฆฌ์†Œ์Šค ๋ฏธ๋ฐœ๊ฒฌ.
  • 409 Conflict: ์„œ๋ฒ„์˜ ํ˜„์žฌ ์ƒํƒœ์™€ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์ด ์ถฉ๋Œ (์ค‘๋ณต ํšŒ์› ๊ฐ€์ž… ๋“ฑ)
  • 500 Internal Server Error: ์„œ๋ฒ„ ์˜ค๋ฅ˜.

4. Basic Response

API ์š”์ฒญ์— ๋”ฐ๋ฅธ ๊ธฐ๋ณธ์ ์ธ ์‘๋‹ต ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String HTTP ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ์— ๋Œ€ํ•œ ์ƒ์„ธ ๋ฉ”์‹œ์ง€ O
obj Object ์š”์ฒญ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง. ๋•Œ์— ๋”ฐ๋ผ null์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ์˜ ์„ฑ๊ณต ์—ฌ๋ถ€ O

์‘๋‹ต ์˜ˆ์‹œ

{
  "status": "200 OK",
  "msg": "์š”์ฒญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.",
  "obj":{
      "id": 1,
      "name": "Sample Object 1"
   },
  "success": true
}
{
  "status": "404 NOT FOUND",
  "msg": "์š”์ฒญ์— ๋Œ€ํ•œ ์ž์›์ด ์—†์Šต๋‹ˆ๋‹ค.",
  "obj": null,
  "success": false
}

5. Detailed API Documentation

๊ฐ API ์—”๋“œํฌ์ธํŠธ๋Š” ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž๋Š” ์ด๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  API๋Š” HTTP ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ๋˜๋ฉฐ, ์š”์ฒญ๊ณผ ์‘๋‹ต์€ JSON ํ˜•์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๊ฐ API ์—”๋“œํฌ์ธํŠธ์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ์›ํ™œํ•œ ํ†ต์‹ ์„ ๋•๊ธฐ ์œ„ํ•œ ๊ฐ€์ด๋“œ๋กœ, ๊ฐ ์—”๋“œํฌ์ธํŠธ์˜ ์—ญํ• , ํ•„์š”ํ•œ ์š”์ฒญ ๋งค๊ฐœ๋ณ€์ˆ˜, ๊ทธ๋ฆฌ๊ณ  ์‘๋‹ต ํ˜•์‹์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๋ณด๋‹ค ์‰ฝ๊ฒŒ API๋ฅผ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์œ ์ง€ ๋ณด์ˆ˜ ๋ฐ ํ™•์žฅ์ด ์šฉ์ดํ•œ ๊ตฌ์กฐ๋กœ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

Auth API

1. ํšŒ์›๊ฐ€์ž…

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
POST /api/v1/auth/signup

- ์š”์ฒญ

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
userName String ํšŒ์›๊ฐ€์ž…ํ•  ์‚ฌ์šฉ์ž ์ด๋ฆ„ O
userEmail String ํšŒ์›๊ฐ€์ž…ํ•  ์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ (์ด๋ฉ”์ผ ํ˜•์‹) O
userPassword String ํšŒ์›๊ฐ€์ž…ํ•  ์‚ฌ์šฉ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ (8์ž ์ด์ƒ) O
userIsOAuth String OAuth ์‚ฌ์šฉ ์—ฌ๋ถ€ X

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj Object ์š”์ฒญ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง. ๋•Œ์— ๋”ฐ๋ผ null์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'POST' \
  'https://www.hearus-spring-be.shop:8080/api/v1/auth/signup' \
  -H 'accept: application/hal+json' \
  -H 'Content-Type: application/json' \
  -d '{
  "userEmail": "[email protected]",
  "userPassword": "testtest123@",
  "userIsOAuth": false,
  "userName": "๊น€ํžˆ์–ผ"
}'
์‘๋‹ต
{
  "status": "CREATED",
  "msg": "Signup Success",
  "object": null,
  "success": true
}

2. ๋กœ๊ทธ์ธ

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
POST /api/v1/auth/login

- ์š”์ฒญ

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
userEmail String ๋กœ๊ทธ์ธํ•  ์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ (์ด๋ฉ”์ผ ํ˜•์‹) O
userPassword String ๋กœ๊ทธ์ธํ•  ์‚ฌ์šฉ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ (8์ž ์ด์ƒ) O
userIsOAuth String OAuth ์‚ฌ์šฉ ์—ฌ๋ถ€ X

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj TokenDTO ์š”์ฒญ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง. ๋•Œ์— ๋”ฐ๋ผ null์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O
TokenDTO
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
grantType String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€์ธ์ฆ ๋ฐฉ์‹, ์—ฌ๊ธฐ๋Š” "Bearer"๋กœ accessToken์„ ์‚ฌ์šฉํ•œ ์ธ์ฆ์„ ์˜๋ฏธ O
accessToken String ์„œ๋ฒ„์— ์š”์ฒญ ์‹œ ์‚ฌ์šฉํ•˜๋Š” ์ธ์ฆ ํ† ํฐ O
refreshToken String accessToken ๋งŒ๋ฃŒ ์‹œ ์ƒˆ๋กœ ๋ฐœ๊ธ‰๋ฐ›๊ธฐ ์œ„ํ•œ ํ† ํฐ O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'POST' \
  'https://www.hearus-spring-be.shop:8080/api/v1/auth/login' \
  -H 'accept: application/hal+json' \
  -H 'Content-Type: application/json' \
  -d '{
  "userEmail": "[email protected]",
  "userPassword": "testtest123@"
}'
์‘๋‹ต
{
  "status": "OK",
  "msg": "Login Success",
  "object": {
    "grantType": "Bearer",
    "accessToken": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxNjRiNTkwNy01ZTU2LTQyODMtYTdlYS00NWY3MzBlMTkzZDciLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTQzNDU2Nn0.Hh1y8nV3MnoQObaTaEWDTNZ26ub3qKgWD6KUWb9ij7g",
    "refreshToken": "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3Mjg2NTY5NjZ9.NIlH7ua6lsZN5ku88QzNJPiU2ny9xmpSlo4PtIgdAbI"
  },
  "success": true
}

User API

1. ํ˜„์žฌ ๋กœ๊ทธ์ธํ•œ ์œ ์ € ์ •๋ณด ์กฐํšŒ

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
GET /api/v1/user/present-user

- ์š”์ฒญ

ํ—ค๋”
์ด๋ฆ„ ์„ค๋ช… ํ•„์ˆ˜
Authorization Authorization: Bearer ${ACCESS_TOKEN} ์ธ์ฆ ๋ฐฉ์‹, ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ์ธ์ฆ ์š”์ฒญ O

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj User ์š”์ฒญ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง. ๋•Œ์— ๋”ฐ๋ผ null์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O

User

์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
userId String ์‚ฌ์šฉ์ž ID O
userName String ์‚ฌ์šฉ์ž ์ด๋ฆ„ O
userEmail String ์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ O
userPassword String ๋นˆ ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜ O
userRole String ์‚ฌ์šฉ์ž Role O
userIsOAuth Boolean OAuth ๋กœ๊ทธ์ธ ์—ฌ๋ถ€ O
userOAuthType String OAuth Third-Party ์ด๋ฆ„ O
userSchool String ์‚ฌ์šฉ์ž ํ•™๊ต O
userMajor String ์‚ฌ์šฉ์ž ์ „๊ณต O
userGrade String ์‚ฌ์šฉ์ž ํ•™๋…„ O
userSavedLectures String[] ์‚ฌ์šฉ์ž๊ฐ€ ์ €์žฅํ•œ ๊ฐ•์˜ ID ๋ฆฌ์ŠคํŠธ O
userSchedule String[] ์‚ฌ์šฉ์ž๊ฐ€ ์ €์žฅํ•œ ์‹œ๊ฐ„ํ‘œ ID ๋ฆฌ์ŠคํŠธ O
userUsePurpose String ์‚ฌ์šฉ์ž ์ด์šฉ ๋ชฉ์  O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'GET' \
  'https://www.hearus-spring-be.shop:8080/api/v1/user/present-user' \
  -H 'accept: application/hal+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NGI2MzY0NC05NTA3LTRiNjQtOTY3MC1hZTVkMGVhOGRjMzEiLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTkyNzIzMH0.iBwrCcMA4kA1HUM87eB_jJeZNsvxeqNSzxvXPY8EtmY'
์‘๋‹ต
{
  "status": "OK",
  "msg": "Success Search User",
  "object": {
    "userId": "74b63644-9507-4b64-9670-ae5d0ea8dc31",
    "userName": "๊น€ํžˆ์–ผ",
    "userEmail": "[email protected]",
    "userPassword": "",
    "userRole": "USER",
    "userIsOAuth": false,
    "userOAuthType": null,
    "userSchool": "๊ฑด๊ตญ๋Œ€ํ•™๊ต",
    "userMajor": "๊ฒฝ์ œํ•™๊ณผ",
    "userGrade": "3",
    "userSavedLectures": [
      "6694b81c95105f1845ebf05a",
      "6694b82695105f1845ebf05b",
      "6694b82e95105f1845ebf05c",
      "6694b83495105f1845ebf05d",
      "6694b83c95105f1845ebf05e",
      "66aa36b94771e246390c5b96",
      "66fe5620fa14c6267fac4917",
      "66fe5f58493e974a73d6aa30",
      "66fe620d493e974a73d6aa34",
      "66fe807ae88f3b486857b245",
      "66fe8a9a6f5c5d29e7d9daea",
      "66fe8c7c6f5c5d29e7d9daeb",
      "66fe8ed36f5c5d29e7d9daec",
      "66ff7e38ba956a6047381f05",
      "66ff9dd4ba956a6047381f06",
      "67049ef5ba956a6047381f09",
      "6704e586ba956a6047381f0a",
      "670528813c434b411544212c",
      "670529f63c434b411544212d",
      "67061ecbdcd9ed61857069c0",
      "67062d80dcd9ed61857069c1",
      "67062e0edcd9ed61857069c2",
      "67063accdcd9ed61857069c3",
      "67063f1bdcd9ed61857069c4",
      "67064023dcd9ed61857069c5",
      "670640d5dcd9ed61857069c6",
      "67064102dcd9ed61857069c7",
      "670641fcdcd9ed61857069c8",
      "67064662dcd9ed61857069c9",
      "6706492edcd9ed61857069ca",
      "67065f6ddcd9ed61857069cb",
      "67065feddcd9ed61857069cc",
      "67066059dcd9ed61857069cd",
      "670665a3dcd9ed61857069ce",
      "6706662ddcd9ed61857069cf",
      "670666e9dcd9ed61857069d0",
      "67066726dcd9ed61857069d1",
      "67066a13dcd9ed61857069d2",
      "6706705fdcd9ed61857069d3",
      "670671cfdcd9ed61857069d4",
      "67067200dcd9ed61857069d5",
      "67067227dcd9ed61857069d6",
      "67067258dcd9ed61857069d7",
      "67067270dcd9ed61857069d8",
      "67067399dcd9ed61857069d9",
      "670673c4dcd9ed61857069da",
      "67067982dcd9ed61857069db",
      "6706799ddcd9ed61857069dc",
      "67067fbbdcd9ed61857069dd"
    ],
    "userSchedule": [
      "1",
      "11",
      "14",
      "15"
    ],
    "userUsePurpose": null
  },
  "success": true
}

2. ์‚ฌ์šฉ์ž ์ •๋ณด ์—…๋ฐ์ดํŠธ

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
PUT /api/v1/schedule/updateUser

- ์š”์ฒญ

ํ—ค๋”
์ด๋ฆ„ ์„ค๋ช… ํ•„์ˆ˜
Authorization Authorization: Bearer ${ACCESS_TOKEN} ์ธ์ฆ ๋ฐฉ์‹, ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ์ธ์ฆ ์š”์ฒญ O
๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
userId String ์‚ฌ์šฉ์ž ID O
userName String ๋ณ€๊ฒฝํ•  ์‚ฌ์šฉ์ž ์ด๋ฆ„ O
userSchool String ๋ณ€๊ฒฝํ•  ์‚ฌ์šฉ์ž ํ•™๊ต O
userMajor String ๋ณ€๊ฒฝํ•  ์‚ฌ์šฉ์ž ์ „๊ณต O
userGrade String ๋ณ€๊ฒฝํ•  ์‚ฌ์šฉ์ž ํ•™๋…„ O
userUsePurpose String ๋ณ€๊ฒฝํ•  ์‚ฌ์šฉ์ž ์ด์šฉ ๋ชฉ์  O

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj Object ์š”์ฒญ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง. ๋•Œ์— ๋”ฐ๋ผ null์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'PUT' \
  'https://www.hearus-spring-be.shop:8080/api/v1/user/updateUser' \
  -H 'accept: application/hal+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NGI2MzY0NC05NTA3LTRiNjQtOTY3MC1hZTVkMGVhOGRjMzEiLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTkyNzIzMH0.iBwrCcMA4kA1HUM87eB_jJeZNsvxeqNSzxvXPY8EtmY' \
  -H 'Content-Type: application/json' \
  -d '{
    "userId": "74b63644-9507-4b64-9670-ae5d0ea8dc31",
    "userName": "๊น€ํžˆ์–ผ",
    "userSchool": "๊ฑด๊ตญ๋Œ€ํ•™๊ต",
    "userMajor": "๊ฒฝ์ œํ•™๊ณผ",
    "userGrade": "3",
    "userUsePurpose": null
  }'
์‘๋‹ต
{
  "status": "OK",
  "msg": "User updated successfully",
  "object": null,
  "success": true
}

Lecture API - Lecture

1. ๊ฐ•์˜ ์ถ”๊ฐ€

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
POST /api/v1/lecture/addLecture

- ์š”์ฒญ

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
name String ๊ฐ•์˜ ์ด๋ฆ„ O
processedScript String[] ๋…น์Œ๋œ ๊ฐ•์˜ ์Šคํฌ๋ฆฝํŠธ O
lectureDate Date ๊ฐ•์˜ ๋‚ ์งœ O
scheduleElementId String ๊ฐ•์˜์™€ ์—ฐ๊ด€๋œ ScheduleElement ์˜ ID X
createdAt Date ์ƒ์„ฑ๋œ ๋‚ ์งœ X
problems Problem[] ์ƒ์„ฑ๋œ ๋ฌธ์ œ X

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj Lecture ์š”์ฒญ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง. ๋•Œ์— ๋”ฐ๋ผ null์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O
Lecture
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id String ๊ฐ•์˜ ID O
name String ๊ฐ•์˜ ์ด๋ฆ„ O
processedScript String[] ๋…น์Œ๋œ ๊ฐ•์˜ ์Šคํฌ๋ฆฝํŠธ O
scheduleElementId String ์—ฐ๊ด€๋œ ScheduleElement์˜ ID O
lectureDate Date ๊ฐ•์˜ ๋‚ ์งœ O
createdAt Date ์ƒ์„ฑ๋œ ๋‚ ์งœ O
problems Problem[] ๊ฐ•์˜์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋“ค. Null ์ผ ์ˆ˜ ์žˆ์Œ. O
Problem
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id String ๋ฌธ์ œ ID O
type String ๋ฌธ์ œ์˜ ์œ ํ˜• O
direction String ๋ฌธ์ œ ๋‚ด์šฉ O
answer String ๋ฌธ์ œ์˜ ๋‹ต O
options String[] ๋ฌธ์ œ์˜ ์„ ์ง€ O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'POST' \
  'https://www.hearus-spring-be.shop:8080/api/v1/lecture/addLecture' \
  -H 'accept: application/hal+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NGI2MzY0NC05NTA3LTRiNjQtOTY3MC1hZTVkMGVhOGRjMzEiLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTkyNzIzMH0.iBwrCcMA4kA1HUM87eB_jJeZNsvxeqNSzxvXPY8EtmY' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "์ปดํ“จํ„ฐ๊ณตํ•™๊ฐœ๋ก ",
  "processedScript": [
"์•ˆ๋…•ํ•˜์„ธ์š” ๊น€๊ต์ˆ˜์ž…๋‹ˆ๋‹ค"
   
  ],

"lectureDate": "2023-07-30T11:00:00"
}'
์‘๋‹ต
{
  "status": "OK",
  "msg": "Lecture added successfully",
  "object": {
    "id": "670fc1191c0bc5033cb8056d",
    "name": "์ปดํ“จํ„ฐ๊ณตํ•™๊ฐœ๋ก ",
    "processedScript": [
      "์•ˆ๋…•ํ•˜์„ธ์š” ๊น€๊ต์ˆ˜์ž…๋‹ˆ๋‹ค"
    ],
    "scheduleElementId": null,
    "lectureDate": "2023-07-30T11:00:00.000+00:00",
    "createdAt": "2024-10-16T13:35:21.997+00:00",
    "problems": null
  },
  "success": true
}

2. ๋ชจ๋“  ๊ฐ•์˜ ์กฐํšŒ

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
GET /api/v1/lecture/getAllLecture

- ์š”์ฒญ

ํ—ค๋”
์ด๋ฆ„ ์„ค๋ช… ํ•„์ˆ˜
Authorization Authorization: Bearer ${ACCESS_TOKEN} ์ธ์ฆ ๋ฐฉ์‹, ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ์ธ์ฆ ์š”์ฒญ O

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj Lecture[] ๊ฐ•์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง. ๋นˆ ๋ฆฌ์ŠคํŠธ์ผ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O
Lecture
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id String ๊ฐ•์˜ ID O
name String ๊ฐ•์˜ ์ด๋ฆ„ O
processedScript String[] ๋…น์Œ๋œ ๊ฐ•์˜ ์Šคํฌ๋ฆฝํŠธ O
scheduleElementId String ์—ฐ๊ด€๋œ ScheduleElement์˜ ID O
lectureDate Date ๊ฐ•์˜ ๋‚ ์งœ O
createdAt Date ์ƒ์„ฑ๋œ ๋‚ ์งœ O
problems Problem[] ๊ฐ•์˜์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋“ค. Null ์ผ ์ˆ˜ ์žˆ์Œ. O
Problem
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id String ๋ฌธ์ œ ID O
type String ๋ฌธ์ œ์˜ ์œ ํ˜• O
direction String ๋ฌธ์ œ ๋‚ด์šฉ O
answer String ๋ฌธ์ œ์˜ ๋‹ต O
options String[] ๋ฌธ์ œ์˜ ์„ ์ง€ O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'GET' \
  'https://www.hearus-spring-be.shop:8080/api/v1/lecture/getAllLecture' \
  -H 'accept: application/hal+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NGI2MzY0NC05NTA3LTRiNjQtOTY3MC1hZTVkMGVhOGRjMzEiLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTkyNzIzMH0.iBwrCcMA4kA1HUM87eB_jJeZNsvxeqNSzxvXPY8EtmY'
์‘๋‹ต
{
  "status": "OK",
  "msg": "LectureLists",
  "object": [
    {
      "id": "6694b81c95105f1845ebf05a",
      "name": "๊ฒฝ์ œํ•™์›๋ก -240911",
      "processedScript": [
        "์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ **์ˆ˜์š”์™€ ๊ณต๊ธ‰**์ด๋ผ๋Š” ๊ฒฝ์ œํ•™์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๋จผ์ € **์ˆ˜์š”**์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด ๋ณผ๊นŒ์š”? ์ˆ˜์š”๋ž€ **์†Œ๋น„์ž**๋“ค์ด ์–ด๋–ค ์ƒํ’ˆ"
      ],
      "scheduleElementId": "14",
      "lectureDate": "2024-09-11T09:00:00.000+00:00",
      "createdAt": "2024-09-11T05:48:12.451+00:00",
      "problems": null
    },
    {
      "id": "6694b82695105f1845ebf05b",
      "name": "๊ฒฝ์ œํ•™์›๋ก -240904",
      "processedScript": [
        "์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜๋ถ€ํ„ฐ ๊ฒฝ์ œํ•™์›๋ก  ์ˆ˜์—…์„ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฒซ ์‹œ๊ฐ„์—๋Š” **๊ฒฝ์ œํ•™์˜ ๊ธฐ๋ณธ ๊ฐœ๋…**๊ณผ **๊ฒฝ์ œํ•™์„ ๊ณต๋ถ€ํ•˜๋Š” ์ด์œ **์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๋จผ์ €, **๊ฒฝ์ œํ•™**์ด๋ž€ ๋ฌด์—‡์ผ"
      ],
      "scheduleElementId": "14",
      "lectureDate": "2024-09-04T13:30:00.000+00:00",
      "createdAt": "2024-09-04T05:48:22.313+00:00",
      "problems": null
    },
    {
      "id": "6694b82e95105f1845ebf05c",
      "name": "์ปดํ“จํŒ…์ ์‚ฌ๊ณ -240903",
      "processedScript": [
        "์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜๋ถ€ํ„ฐ **ํŒŒ์ด์ฌ์„ ํ™œ์šฉํ•œ ์ปดํ“จํŒ…์  ์‚ฌ๊ณ ** ์ˆ˜์—…์„ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฒซ ์‹œ๊ฐ„์—๋Š” **์ปดํ“จํŒ…์  ์‚ฌ๊ณ **์˜ ๊ฐœ๋…๊ณผ **ํŒŒ์ด์ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ**์˜ ๊ธฐ์ดˆ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค."
      ],
      "scheduleElementId": "12",
      "lectureDate": "2024-09-03T10:30:00.000+00:00",
      "createdAt": "2024-07-15T05:48:30.618+00:00",
      "problems": null
    },
    {
      "id": "6694b83495105f1845ebf05d",
      "name": "๋™์•„๋ฆฌ ํšŒ์˜-240902",
      "processedScript": [
        "์•ˆ๋…•ํ•˜์„ธ์š”, ์—ฌ๋Ÿฌ๋ถ„. ์˜ค๋Š˜์€ ๊ฒฝ์ œํ•™๊ณผ ๋…ผ๋ฌธ ๋™์•„๋ฆฌ์˜ ์ฒซ ๋ฒˆ์งธ ๋ชจ์ž„์ž…๋‹ˆ๋‹ค. ์ด ์‹œ๊ฐ„์—๋Š” ์šฐ๋ฆฌ ๋™์•„๋ฆฌ์˜ **๋ชฉ์ **๊ณผ **ํ™œ๋™ ๊ณ„ํš**, ๊ทธ๋ฆฌ๊ณ  **๋…ผ๋ฌธ ์ž‘์„ฑ์˜ ๊ธฐ์ดˆ**์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐ"
      ],
      "scheduleElementId": null,
      "lectureDate": "2024-09-02T14:00:00.000+00:00",
      "createdAt": "2024-07-15T05:48:36.706+00:00",
      "problems": null
    }
  ],
  "success": true
}

3. ๊ฐ•์˜ ์กฐํšŒ

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
GET /api/v1/lecture/getLecture

- ์š”์ฒญ

ํ—ค๋”
์ด๋ฆ„ ์„ค๋ช… ํ•„์ˆ˜
Authorization Authorization: Bearer ${ACCESS_TOKEN} ์ธ์ฆ ๋ฐฉ์‹, ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ์ธ์ฆ ์š”์ฒญ O
๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
lectureId String ์กฐํšŒํ•  ๊ฐ•์˜์˜ ID O

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj Lecture ๊ฐ•์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง. ๋นˆ ๋ฆฌ์ŠคํŠธ์ผ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O
Lecture
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id String ๊ฐ•์˜ ID O
name String ๊ฐ•์˜ ์ด๋ฆ„ O
processedScript String[] ๋…น์Œ๋œ ๊ฐ•์˜ ์Šคํฌ๋ฆฝํŠธ O
scheduleElementId String ์—ฐ๊ด€๋œ ScheduleElement์˜ ID O
lectureDate Date ๊ฐ•์˜ ๋‚ ์งœ O
createdAt Date ์ƒ์„ฑ๋œ ๋‚ ์งœ O
problems Problem[] ๊ฐ•์˜์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋“ค. Null ์ผ ์ˆ˜ ์žˆ์Œ. O
Problem
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id String ๋ฌธ์ œ ID O
type String ๋ฌธ์ œ์˜ ์œ ํ˜• O
direction String ๋ฌธ์ œ ๋‚ด์šฉ O
answer String ๋ฌธ์ œ์˜ ๋‹ต O
options String[] ๋ฌธ์ œ์˜ ์„ ์ง€ O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'GET' \
  'https://www.hearus-spring-be.shop:8080/api/v1/lecture/getLecture?lectureId=6694b81c95105f1845ebf05a' \
  -H 'accept: application/hal+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NGI2MzY0NC05NTA3LTRiNjQtOTY3MC1hZTVkMGVhOGRjMzEiLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTc3NTg1Nn0.GpyInbVf4nmIzm45mspSv6bsN1hw8Cl0Zut3nOEi-0k'
์‘๋‹ต
{
  "status": "OK",
  "msg": "LectureModel",
  "object": {
    "id": "6694b81c95105f1845ebf05a",
    "name": "๊ฒฝ์ œํ•™์›๋ก -240911",
    "processedScript": [
      "์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ **์ˆ˜์š”์™€ ๊ณต๊ธ‰**์ด๋ผ๋Š” ๊ฒฝ์ œํ•™์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.",
      "๋จผ์ € **์ˆ˜์š”**์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด ๋ณผ๊นŒ์š”? ์ˆ˜์š”๋ž€ **์†Œ๋น„์ž**๋“ค์ด ์–ด๋–ค ์ƒํ’ˆ์ด๋‚˜ ์„œ๋น„์Šค๋ฅผ **๊ตฌ๋งคํ•˜๋ ค๋Š” ์š•๊ตฌ**๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์š”๋Š” **๊ฐ€๊ฒฉ**๊ณผ **๋ฐ€์ ‘ํ•œ ๊ด€๋ จ**์ด ์žˆ์–ด์š”. ๋ณดํ†ต ๊ฐ€๊ฒฉ์ด ์˜ฌ๋ผ๊ฐ€๋ฉด ์ˆ˜์š”๊ฐ€ ์ค„์–ด๋“ค๊ณ , ๊ฐ€๊ฒฉ์ด ๋‚ด๋ ค๊ฐ€๋ฉด ์ˆ˜์š”๊ฐ€ ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ **์ˆ˜์š”์˜ ๋ฒ•์น™**์ด๋ผ๊ณ  ํ•ด์š”.",
      "์ˆ˜์š”์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์š”์ธ๋“ค์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. **์†Œ๋“**, **์ทจํ–ฅ**, **๋‹ค๋ฅธ ์ƒํ’ˆ์˜ ๊ฐ€๊ฒฉ**, **๋ฏธ๋ž˜์— ๋Œ€ํ•œ ์˜ˆ์ƒ** ๋“ฑ์ด ๋Œ€ํ‘œ์ ์ด์—์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, ์†Œ๋น„์ž์˜ ์†Œ๋“์ด ๋Š˜์–ด๋‚˜๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ์ƒํ’ˆ์— ๋Œ€ํ•œ ์ˆ˜์š”๊ฐ€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.",
      "์ด์ œ **๊ณต๊ธ‰**์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ๊นŒ์š”? ๊ณต๊ธ‰์€ **์ƒ์‚ฐ์ž**๋“ค์ด ์–ด๋–ค ์ƒํ’ˆ์ด๋‚˜ ์„œ๋น„์Šค๋ฅผ **ํŒ๋งคํ•˜๋ ค๋Š” ์˜์ง€**๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ธ‰ ์—ญ์‹œ ๊ฐ€๊ฒฉ๊ณผ ๋ฐ€์ ‘ํ•œ ๊ด€๋ จ์ด ์žˆ์–ด์š”. ๋ณดํ†ต ๊ฐ€๊ฒฉ์ด ์˜ฌ๋ผ๊ฐ€๋ฉด ๊ณต๊ธ‰์ด ๋Š˜์–ด๋‚˜๊ณ , ๊ฐ€๊ฒฉ์ด ๋‚ด๋ ค๊ฐ€๋ฉด ๊ณต๊ธ‰์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค. ์ด๋ฅผ **๊ณต๊ธ‰์˜ ๋ฒ•์น™**์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.",
      "๊ณต๊ธ‰์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์š”์ธ์œผ๋กœ๋Š” **์ƒ์‚ฐ ๋น„์šฉ**, **๊ธฐ์ˆ **, **์ •๋ถ€ ์ •์ฑ…**, **๋ฏธ๋ž˜์— ๋Œ€ํ•œ ์˜ˆ์ƒ** ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์ด ๊ฐœ๋ฐœ๋˜์–ด ์ƒ์‚ฐ ๋น„์šฉ์ด ์ค„์–ด๋“ค๋ฉด ๊ณต๊ธ‰์ด ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.",
      "**์ˆ˜์š”์™€ ๊ณต๊ธ‰**์ด ๋งŒ๋‚˜๋Š” ์ง€์ ์—์„œ **์‹œ์žฅ ๊ท ํ˜•**์ด ํ˜•์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ์˜ ๊ฐ€๊ฒฉ์„ **๊ท ํ˜• ๊ฐ€๊ฒฉ**, ๊ฑฐ๋ž˜๋Ÿ‰์„ **๊ท ํ˜• ๊ฑฐ๋ž˜๋Ÿ‰**์ด๋ผ๊ณ  ํ•ด์š”. ์‹œ์žฅ ๊ท ํ˜•์—์„œ๋Š” **์ดˆ๊ณผ ์ˆ˜์š”**๋‚˜ **์ดˆ๊ณผ ๊ณต๊ธ‰**์ด ์—†๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค.",
      "ํ•˜์ง€๋งŒ ํ˜„์‹ค์—์„œ๋Š” ํ•ญ์ƒ ๊ท ํ˜• ์ƒํƒœ์— ์žˆ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ€๊ฒฉ์ด ๊ท ํ˜• ๊ฐ€๊ฒฉ๋ณด๋‹ค ๋†’์œผ๋ฉด **์ดˆ๊ณผ ๊ณต๊ธ‰**์ด ๋ฐœ์ƒํ•˜๊ณ , ๋‚ฎ์œผ๋ฉด **์ดˆ๊ณผ ์ˆ˜์š”**๊ฐ€ ๋ฐœ์ƒํ•ด์š”. ์ด๋Ÿฐ ๋ถˆ๊ท ํ˜• ์ƒํƒœ์—์„œ ์‹œ์žฅ์€ ๋‹ค์‹œ ๊ท ํ˜•์„ ์ฐพ์•„๊ฐ€๋Š” **์กฐ์ • ๊ณผ์ •**์„ ๊ฑฐ์น˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.",
      "**ํƒ„๋ ฅ์„ฑ**์ด๋ผ๋Š” ๊ฐœ๋…๋„ ์ค‘์š”ํ•ด์š”. ํƒ„๋ ฅ์„ฑ์€ ํ•œ ๋ณ€์ˆ˜์˜ ๋ณ€ํ™”์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ๋ณ€์ˆ˜๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋ฏผ๊ฐํ•˜๊ฒŒ ๋ฐ˜์‘ํ•˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. **์ˆ˜์š”์˜ ๊ฐ€๊ฒฉ ํƒ„๋ ฅ์„ฑ**์€ ๊ฐ€๊ฒฉ ๋ณ€ํ™”์— ๋”ฐ๋ผ ์ˆ˜์š”๋Ÿ‰์ด ์–ผ๋งˆ๋‚˜ ๋ณ€ํ•˜๋Š”์ง€๋ฅผ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•„์ˆ˜ํ’ˆ์€ ๋ณดํ†ต ๋น„ํƒ„๋ ฅ์ ์ด๊ณ , ์‚ฌ์น˜ํ’ˆ์€ ํƒ„๋ ฅ์ ์ธ ๊ฒฝํ–ฅ์ด ์žˆ์–ด์š”.",
      "**์†Œ๋น„์ž ์ž‰์—ฌ**์™€ **์ƒ์‚ฐ์ž ์ž‰์—ฌ**๋ผ๋Š” ๊ฐœ๋…๋„ ์•Œ์•„๋‘˜ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์†Œ๋น„์ž ์ž‰์—ฌ๋Š” ์†Œ๋น„์ž๊ฐ€ ์‹ค์ œ๋กœ ์ง€๋ถˆํ•œ ๊ฐ€๊ฒฉ๊ณผ ์ง€๋ถˆํ•  ์šฉ์˜๊ฐ€ ์žˆ์—ˆ๋˜ ์ตœ๋Œ€ ๊ฐ€๊ฒฉ์˜ ์ฐจ์ด์˜ˆ์š”. ์ƒ์‚ฐ์ž ์ž‰์—ฌ๋Š” ์ƒ์‚ฐ์ž๊ฐ€ ๋ฐ›์€ ๊ฐ€๊ฒฉ๊ณผ ์ตœ์†Œํ•œ ๋ฐ›๊ณ ์ž ํ–ˆ๋˜ ๊ฐ€๊ฒฉ์˜ ์ฐจ์ด๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.",
      "๋งˆ์ง€๋ง‰์œผ๋กœ, ์‹œ์žฅ์— ๋Œ€ํ•œ **์ •๋ถ€์˜ ๊ฐœ์ž…**์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด ๋ณผ๊นŒ์š”? ์ •๋ถ€๋Š” ๋•Œ๋•Œ๋กœ **์ตœ์ € ๊ฐ€๊ฒฉ์ œ**๋‚˜ **์ตœ๊ณ  ๊ฐ€๊ฒฉ์ œ**๋ฅผ ํ†ตํ•ด ์‹œ์žฅ์— ๊ฐœ์ž…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” **์‹œ์žฅ์˜ ๋น„ํšจ์œจ์„ฑ**์„ ํ•ด๊ฒฐํ•˜๊ฑฐ๋‚˜ **์‚ฌํšŒ์  ํ˜•ํ‰์„ฑ**์„ ๋†’์ด๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ์‹œํ–‰๋˜์ง€๋งŒ, ๋•Œ๋กœ๋Š” **์˜๋„ํ•˜์ง€ ์•Š์€ ๊ฒฐ๊ณผ**๋ฅผ ๋‚ณ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.",
      "์ด์ƒ์œผ๋กœ ์ˆ˜์š”์™€ ๊ณต๊ธ‰์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…๋“ค์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์‹œ๊ฐ„์—๋Š” ์ด๋Ÿฌํ•œ ๊ฐœ๋…๋“ค์ด ์‹ค์ œ ๊ฒฝ์ œ ํ˜„์ƒ์— ์–ด๋–ป๊ฒŒ ์ ์šฉ๋˜๋Š”์ง€ ๊ตฌ์ฒด์ ์ธ ์‚ฌ๋ก€๋ฅผ ํ†ตํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์งˆ๋ฌธ ์žˆ์œผ์‹ ๊ฐ€์š”?"
    ],
    "scheduleElementId": "๊ฒฝ์ œํ•™์›๋ก ",
    "lectureDate": "2024-09-11T09:00:00.000+00:00",
    "createdAt": "2024-09-11T05:48:12.451+00:00",
    "problems": [
      {
        "id": "e83564dd-3e3d-490b-a6fc-af90682d4775",
        "type": "OXChoice",
        "direction": "๊ธฐํšŒ๋น„์šฉ์€ ์„ ํƒ์— ๋”ฐ๋ฅธ ๋ช…์‹œ์  ๋น„์šฉ๋งŒ์„ ๊ณ ๋ คํ•œ๋‹ค.",
        "options": null,
        "answer": "X"
      }
    ]
  },
  "success": true
}

4. ์Šค์ผ€์ค„ ์ •๋ณด๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ•์˜ ์กฐํšŒ

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
GET /api/v1/lecture/getLectureByScheduleElement

- ์š”์ฒญ

ํ—ค๋”
์ด๋ฆ„ ์„ค๋ช… ํ•„์ˆ˜
Authorization Authorization: Bearer ${ACCESS_TOKEN} ์ธ์ฆ ๋ฐฉ์‹, ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ์ธ์ฆ ์š”์ฒญ O
์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
scheduleElementId String ์Šค์ผ€์ค„ ์ •๋ณด ID O

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj Lecture[] ๊ฐ•์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง. ๋นˆ ๋ฆฌ์ŠคํŠธ์ผ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O
Lecture
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id String ๊ฐ•์˜ ID O
name String ๊ฐ•์˜ ์ด๋ฆ„ O
processedScript String[] ๋…น์Œ๋œ ๊ฐ•์˜ ์Šคํฌ๋ฆฝํŠธ O
scheduleElementId String ์—ฐ๊ด€๋œ ScheduleElement์˜ ID O
lectureDate Date ๊ฐ•์˜ ๋‚ ์งœ O
createdAt Date ์ƒ์„ฑ๋œ ๋‚ ์งœ O
problems Problem[] ๊ฐ•์˜์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋“ค. Null ์ผ ์ˆ˜ ์žˆ์Œ. O
Problem
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id String ๋ฌธ์ œ ID O
type String ๋ฌธ์ œ์˜ ์œ ํ˜• O
direction String ๋ฌธ์ œ ๋‚ด์šฉ O
answer String ๋ฌธ์ œ์˜ ๋‹ต O
options String[] ๋ฌธ์ œ์˜ ์„ ์ง€ O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'GET' \
  'https://www.hearus-spring-be.shop:8080/api/v1/lecture/getLectureByScheduleElement?scheduleElementId=12' \
  -H 'accept: application/hal+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NGI2MzY0NC05NTA3LTRiNjQtOTY3MC1hZTVkMGVhOGRjMzEiLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTc3NTg1Nn0.GpyInbVf4nmIzm45mspSv6bsN1hw8Cl0Zut3nOEi-0k'
์‘๋‹ต
{
  "status": "OK",
  "msg": "Lectures retrieved successfully",
  "object": [
    {
      "id": "6694b82e95105f1845ebf05c",
      "name": "์ปดํ“จํŒ…์ ์‚ฌ๊ณ -240903",
      "processedScript": null,
      "scheduleElementId": "12",
      "lectureDate": "2024-09-03T10:30:00.000+00:00",
      "createdAt": "2024-07-15T05:48:30.618+00:00",
      "problems": null
    },
    {
      "id": "67061ecbdcd9ed61857069c0",
      "name": "์ƒˆ๋กœ์šด ๋…น์Œ-241009-์ปด์‚ฌ",
      "processedScript": null,
      "scheduleElementId": "12",
      "lectureDate": "2024-10-09T15:12:26.000+00:00",
      "createdAt": "2024-10-09T06:12:27.589+00:00",
      "problems": null
    }
  ],
  "success": true
}

5. ๊ฐ•์˜ ์—…๋ฐ์ดํŠธ

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
PUT /api/v1/lecture/updateLecture

- ์š”์ฒญ

ํ—ค๋”
์ด๋ฆ„ ์„ค๋ช… ํ•„์ˆ˜
Authorization Authorization: Bearer ${ACCESS_TOKEN} ์ธ์ฆ ๋ฐฉ์‹, ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ์ธ์ฆ ์š”์ฒญ O
๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id String ํƒ€๊ฒŸ ๊ฐ•์˜ ID O
name String ๋ณ€๊ฒฝํ•  ๊ฐ•์˜ ์ด๋ฆ„ O
processedScript String[] ๋ณ€๊ฒฝํ•  ๋…น์Œ๋œ ๊ฐ•์˜ ์Šคํฌ๋ฆฝํŠธ O
scheduleElementId String ๋ณ€๊ฒฝํ•  ์—ฐ๊ด€๋œ ScheduleElement์˜ ID O
lectureDate Date ๋ณ€๊ฒฝํ•  ๊ฐ•์˜ ๋‚ ์งœ O
createdAt Date ๋ณ€๊ฒฝํ•  ์ƒ์„ฑ๋œ ๋‚ ์งœ O
problems Problem[] ๋ณ€๊ฒฝํ•  ๊ฐ•์˜์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋“ค. Null ์ผ ์ˆ˜ ์žˆ์Œ. O
Problem
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id String ๋ฌธ์ œ ID O
type String ๋ฌธ์ œ์˜ ์œ ํ˜• O
direction String ๋ฌธ์ œ ๋‚ด์šฉ O
answer String ๋ฌธ์ œ์˜ ๋‹ต O
options String[] ๋ฌธ์ œ์˜ ์„ ์ง€ O

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj Lecture ๊ฐ•์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง. Null ์ผ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O
Lecture
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id String ๊ฐ•์˜ ID O
name String ๋ณ€๊ฒฝ๋œ ๊ฐ•์˜ ์ด๋ฆ„ O
processedScript String[] ๋ณ€๊ฒฝ๋œ ๋…น์Œ๋œ ๊ฐ•์˜ ์Šคํฌ๋ฆฝํŠธ O
scheduleElementId String ๋ณ€๊ฒฝ๋œ ์—ฐ๊ด€๋œ ScheduleElement์˜ ID O
lectureDate Date ๋ณ€๊ฒฝ๋œ ๊ฐ•์˜ ๋‚ ์งœ O
createdAt Date ๋ณ€๊ฒฝ๋œ ์ƒ์„ฑ๋œ ๋‚ ์งœ O
problems Problem[] ๋ณ€๊ฒฝ๋œ ๊ฐ•์˜์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋“ค. Null ์ผ ์ˆ˜ ์žˆ์Œ. O
Problem
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id String ๋ฌธ์ œ ID O
type String ๋ฌธ์ œ์˜ ์œ ํ˜• O
direction String ๋ฌธ์ œ ๋‚ด์šฉ O
answer String ๋ฌธ์ œ์˜ ๋‹ต O
options String[] ๋ฌธ์ œ์˜ ์„ ์ง€ O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'PUT' \
  'https://www.hearus-spring-be.shop:8080/api/v1/lecture/updateLecture' \
  -H 'accept: application/hal+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NGI2MzY0NC05NTA3LTRiNjQtOTY3MC1hZTVkMGVhOGRjMzEiLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTc3NTg1Nn0.GpyInbVf4nmIzm45mspSv6bsN1hw8Cl0Zut3nOEi-0k' \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "6706799ddcd9ed61857069dc",
    "name": "๊ฒฝ์ œํ•™์›๋ก _2023-07-01",
    "processedScript": [
        "๊ฒฝ์ œํ•™์€ ์šฐ๋ฆฌ ์ฃผ๋ณ€์˜ ๋‹ค์–‘ํ•œ ๊ฒฝ์ œ ํ˜„์ƒ์„ ์ดํ•ดํ•˜๊ณ  ๋ถ„์„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์ค‘์š”ํ•œ ํ•™๋ฌธ์ž…๋‹ˆ๋‹ค",
        "ํŠนํžˆ, ์ตœ๊ทผ์—๋Š” ๊ฒฝ์ œ์  ๋ถˆํ‰๋“ฑ, ๊ธฐํ›„ ๋ณ€ํ™”, ๊ธ€๋กœ๋ฒŒ ๊ฒฝ์ œ ์œ„๊ธฐ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฒฝ์ œ ๋ฌธ์ œ๋“ค์ด ์šฐ๋ฆฌ ์‚ฌํšŒ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.",
        "๊ฒฝ์ œํ•™์€ ํฌ์†Œํ•œ ์ž์›์ด๋ผ๋Š” ์ œ์•ฝ ์กฐ๊ฑด ํ•˜์—์„œ ์ธ๊ฐ„์˜ ์š•๊ตฌ๋ฅผ ์ถฉ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์„ ํƒ๊ณผ ํ–‰๋™์„ ์—ฐ๊ตฌํ•˜๋Š” ์‚ฌํšŒ๊ณผํ•™์ž…๋‹ˆ๋‹ค.",
        "๊ธ์ •์  ๋ถ„์„์€ ๊ฒฝ์ œ ํ˜„์ƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋ฐ ์ดˆ์ ์„ ๋งž์ถฅ๋‹ˆ๋‹ค. ๊ฒฝ์ œ ๋ชจ๋ธ, ํ†ต๊ณ„ ๋ถ„์„, ์‹คํ—˜ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฝ์ œ ํ˜„์ƒ์„ ๊ฐ๊ด€์ ์œผ๋กœ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.",
        "๊ทœ๋ฒ”์  ๋ถ„์„์€ ๊ฒฝ์ œ ํ˜„์ƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ํŒ๋‹จ์„ ๋‚ด๋ฆฌ๋Š” ๋ฐ ์ดˆ์ ์„ ๋งž์ถฅ๋‹ˆ๋‹ค. ๊ฒฝ์ œ ์ •์ฑ…, ์œค๋ฆฌ์  ๊ณ ๋ ค, ๊ฐ€์น˜ ํŒ๋‹จ ๋“ฑ์„ ํ†ตํ•ด ๊ฒฝ์ œ ํ˜„์ƒ์— ๋Œ€ํ•œ ๋ฐ”๋žŒ์งํ•œ ๋ฐฉํ–ฅ์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค."
    ],
    "scheduleElementId": "2",
    "lectureDate": "2023-07-01T11:30:00.000+00:00",
    "createdAt": "2024-06-30T09:20:31.376+00:00",
    "problems": []
}'
์‘๋‹ต
{
  "status": "OK",
  "msg": "Lecture Updated",
  "object": {
    "id": "6706799ddcd9ed61857069dc",
    "name": "๊ฒฝ์ œํ•™์›๋ก _2023-07-01",
    "processedScript": [
      "๊ฒฝ์ œํ•™์€ ์šฐ๋ฆฌ ์ฃผ๋ณ€์˜ ๋‹ค์–‘ํ•œ ๊ฒฝ์ œ ํ˜„์ƒ์„ ์ดํ•ดํ•˜๊ณ  ๋ถ„์„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์ค‘์š”ํ•œ ํ•™๋ฌธ์ž…๋‹ˆ๋‹ค",
      "ํŠนํžˆ, ์ตœ๊ทผ์—๋Š” ๊ฒฝ์ œ์  ๋ถˆํ‰๋“ฑ, ๊ธฐํ›„ ๋ณ€ํ™”, ๊ธ€๋กœ๋ฒŒ ๊ฒฝ์ œ ์œ„๊ธฐ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฒฝ์ œ ๋ฌธ์ œ๋“ค์ด ์šฐ๋ฆฌ ์‚ฌํšŒ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.",
      "๊ฒฝ์ œํ•™์€ ํฌ์†Œํ•œ ์ž์›์ด๋ผ๋Š” ์ œ์•ฝ ์กฐ๊ฑด ํ•˜์—์„œ ์ธ๊ฐ„์˜ ์š•๊ตฌ๋ฅผ ์ถฉ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์„ ํƒ๊ณผ ํ–‰๋™์„ ์—ฐ๊ตฌํ•˜๋Š” ์‚ฌํšŒ๊ณผํ•™์ž…๋‹ˆ๋‹ค.",
      "๊ธ์ •์  ๋ถ„์„์€ ๊ฒฝ์ œ ํ˜„์ƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋ฐ ์ดˆ์ ์„ ๋งž์ถฅ๋‹ˆ๋‹ค. ๊ฒฝ์ œ ๋ชจ๋ธ, ํ†ต๊ณ„ ๋ถ„์„, ์‹คํ—˜ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฝ์ œ ํ˜„์ƒ์„ ๊ฐ๊ด€์ ์œผ๋กœ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.",
      "๊ทœ๋ฒ”์  ๋ถ„์„์€ ๊ฒฝ์ œ ํ˜„์ƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ํŒ๋‹จ์„ ๋‚ด๋ฆฌ๋Š” ๋ฐ ์ดˆ์ ์„ ๋งž์ถฅ๋‹ˆ๋‹ค. ๊ฒฝ์ œ ์ •์ฑ…, ์œค๋ฆฌ์  ๊ณ ๋ ค, ๊ฐ€์น˜ ํŒ๋‹จ ๋“ฑ์„ ํ†ตํ•ด ๊ฒฝ์ œ ํ˜„์ƒ์— ๋Œ€ํ•œ ๋ฐ”๋žŒ์งํ•œ ๋ฐฉํ–ฅ์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค."
    ],
    "scheduleElementId": "2",
    "lectureDate": "2023-07-01T11:30:00.000+00:00",
    "createdAt": "2024-06-30T09:20:31.376+00:00",
    "problems": []
  },
  "success": true
}

6. ๊ฐ•์˜ ์‚ญ์ œ

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
DELETE /api/v1/lecture/deleteLecture

- ์š”์ฒญ

ํ—ค๋”
์ด๋ฆ„ ์„ค๋ช… ํ•„์ˆ˜
Authorization Authorization: Bearer ${ACCESS_TOKEN} ์ธ์ฆ ๋ฐฉ์‹, ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ์ธ์ฆ ์š”์ฒญ O
๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
lectureId String ์‚ญ์ œํ•  ๊ฐ•์˜์˜ ID O

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj Object ์š”์ฒญ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง. ๋•Œ์— ๋”ฐ๋ผ null์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'DELETE' \
  'https://www.hearus-spring-be.shop:8080/api/v1/lecture/deleteLecture' \
  -H 'accept: application/hal+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NGI2MzY0NC05NTA3LTRiNjQtOTY3MC1hZTVkMGVhOGRjMzEiLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTc3NTg1Nn0.GpyInbVf4nmIzm45mspSv6bsN1hw8Cl0Zut3nOEi-0k' \
  -H 'Content-Type: application/json' \
  -d '{
  "lectureId": "66aa36b14771e246390c5b95"
}'
์‘๋‹ต
{
  "status": "OK",
  "msg": "Lecture Deleted successfully",
  "object": null,
  "success": true
}

Lecture API - Problem

1. ๋ฌธ์ œ ์ถ”๊ฐ€

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
POST /api/v1/lecture/addProblem

- ์š”์ฒญ

ํ—ค๋”
์ด๋ฆ„ ์„ค๋ช… ํ•„์ˆ˜
Authorization Authorization: Bearer ${ACCESS_TOKEN} ์ธ์ฆ ๋ฐฉ์‹, ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ์ธ์ฆ ์š”์ฒญ O
๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
lectureId String ๋ฌธ์ œ๋ฅผ ์ถ”๊ฐ€ํ•  ๊ฐ•์˜์˜ ID O
problem Problem ์ถ”๊ฐ€ํ•  ๋ฌธ์ œ O
Problem
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
type String ๋ฌธ์ œ์˜ ์œ ํ˜• O
direction String ๋ฌธ์ œ ๋‚ด์šฉ O
answer String ๋ฌธ์ œ์˜ ๋‹ต O
options String[] ๋ฌธ์ œ์˜ ์„ ์ง€ X
id String ๋ฌธ์ œ ID X
-type-
MultipleChoice : ๊ฐ๊ด€์‹, Option์€ ๋„ค๊ฐœ, ์ฆ‰ ์‚ฌ์ง€์„ ๋‹คํ˜•
ShrotAnswer : ๋‹จ๋‹ตํ˜•
BlanckQuestion : ๋นˆ์นธ ๋šซ๊ธฐ ๋ฌธ์ œ
OXChoice : O X ๋ฌธ์ œ

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj Problem[] ์š”์ฒญ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง. ๋•Œ์— ๋”ฐ๋ผ null์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O
Problem
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id String ์ถ”๊ฐ€๋œ ๋ฌธ์ œ์˜ ID O
type String ์ถ”๊ฐ€๋œ ๋ฌธ์ œ์˜ ํƒ€์ž… O
direction String ์ถ”๊ฐ€๋œ ๋ฌธ์ œ์˜ ๋‚ด์šฉ O
option String ์ถ”๊ฐ€๋œ ๋ฌธ์ œ์˜ ์˜ต์…˜ O
answer String ์ถ”๊ฐ€๋œ ๋ฌธ์ œ์˜ ์ •๋‹ต O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'POST' \
  'https://www.hearus-spring-be.shop:8080/api/v1/lecture/addProblem' \
  -H 'accept: application/hal+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NGI2MzY0NC05NTA3LTRiNjQtOTY3MC1hZTVkMGVhOGRjMzEiLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTc3Mzc2Nn0.ENuQLg6McYmBnso8nXC7IgM2hFAgKJwYYZfooCfgmOU' \
  -H 'Content-Type: application/json' \
  -d '{
  "lectureId": "6694b81c95105f1845ebf05a",
  "problem": {
    "type": "OXChoice",
    "direction": "๊ธฐํšŒ๋น„์šฉ์€ ์„ ํƒ์— ๋”ฐ๋ฅธ ๋ช…์‹œ์  ๋น„์šฉ๋งŒ์„ ๊ณ ๋ คํ•œ๋‹ค.",
    "answer": "X"
  }
} '
์‘๋‹ต
{
  "status": "OK",
  "msg": "Problem Added",
  "object": [
    {
      "id": "678c9ead-60ac-479d-a933-096671f684ff",
      "type": "OXChoice",
      "direction": "๊ธฐํšŒ๋น„์šฉ์€ ์„ ํƒ์— ๋”ฐ๋ฅธ ๋ช…์‹œ์  ๋น„์šฉ๋งŒ์„ ๊ณ ๋ คํ•œ๋‹ค.",
      "options": null,
      "answer": "X"
    }
  ],
  "success": true
}

2. ๋ฌธ์ œ ์กฐํšŒ

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
GET /api/v1/lecture/getProblem

- ์š”์ฒญ

ํ—ค๋”
์ด๋ฆ„ ์„ค๋ช… ํ•„์ˆ˜
Authorization Authorization: Bearer ${ACCESS_TOKEN} ์ธ์ฆ ๋ฐฉ์‹, ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ์ธ์ฆ ์š”์ฒญ O
์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
lectureId String ๋ฌธ์ œ๋ฅผ ์กฐํšŒํ•  ๊ฐ•์˜ ID O

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj Problem[] ๋ฌธ์ œ ์ •๋ณด๋ฅผ ๊ฐ€์ง. ๋นˆ ๋ฆฌ์ŠคํŠธ์ผ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O
Problem
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id String ๋ฌธ์ œ ID O
type String ๋ฌธ์ œ์˜ ์œ ํ˜• O
direction String ๋ฌธ์ œ ๋‚ด์šฉ O
answer String ๋ฌธ์ œ์˜ ๋‹ต O
options String[] ๋ฌธ์ œ์˜ ์„ ์ง€ O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'GET' \
  'https://www.hearus-spring-be.shop:8080/api/v1/lecture/getProblem?lectureId=6694b81c95105f1845ebf05a' \
  -H 'accept: application/hal+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NGI2MzY0NC05NTA3LTRiNjQtOTY3MC1hZTVkMGVhOGRjMzEiLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTc3NTg1Nn0.GpyInbVf4nmIzm45mspSv6bsN1hw8Cl0Zut3nOEi-0k'
์‘๋‹ต
{
  "status": "OK",
  "msg": "LectureModel",
  "object": [
    {
      "id": "678c9ead-60ac-479d-a933-096671f684ff",
      "type": "OXChoice",
      "direction": "๊ธฐํšŒ๋น„์šฉ์€ ์„ ํƒ์— ๋”ฐ๋ฅธ ๋ช…์‹œ์  ๋น„์šฉ๋งŒ์„ ๊ณ ๋ คํ•œ๋‹ค.",
      "options": null,
      "answer": "X"
    }
  ],
  "success": true
}

3. ๋ฌธ์ œ ์‚ญ์ œ

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
DELETE /api/v1/lecture/deleteProblem

- ์š”์ฒญ

ํ—ค๋”
์ด๋ฆ„ ์„ค๋ช… ํ•„์ˆ˜
Authorization Authorization: Bearer ${ACCESS_TOKEN} ์ธ์ฆ ๋ฐฉ์‹, ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ์ธ์ฆ ์š”์ฒญ O
๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
lectureId String ์‚ญ์ œํ•  ๋ฌธ์ œ๊ฐ€ ํฌํ•จ๋œ ๊ฐ•์˜์˜ ID O
problemId String ์‚ญ์ œํ•  ๋ฌธ์ œ์˜ ID O

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj Problem[] ์‚ญ์ œ ํ›„ ๋‚จ์€ Problem๋“ค์„ ๊ฐ€์ง. O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O
Problem
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id String ๋ฌธ์ œ์˜ ID O
type String ๋ฌธ์ œ์˜ ํƒ€์ž… O
direction String ๋ฌธ์ œ์˜ ๋‚ด์šฉ O
option String ๋ฌธ์ œ์˜ ์˜ต์…˜ O
answer String ๋ฌธ์ œ์˜ ์ •๋‹ต O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'DELETE' \
  'https://www.hearus-spring-be.shop:8080/api/v1/lecture/deleteProblem' \
  -H 'accept: application/hal+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NGI2MzY0NC05NTA3LTRiNjQtOTY3MC1hZTVkMGVhOGRjMzEiLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTc3NTg1Nn0.GpyInbVf4nmIzm45mspSv6bsN1hw8Cl0Zut3nOEi-0k' \
  -H 'Content-Type: application/json' \
  -d '{
  "lectureId": "6694b81c95105f1845ebf05a",
  "problemId": "678c9ead-60ac-479d-a933-096671f684ff"
}'
์‘๋‹ต
{
  "status": "OK",
  "msg": "Lecture Updated",
  "object": [
    {
      "id": "74dcb2b4-7d9d-452c-8ac9-64f3fc8b1a28",
      "type": "OXChoice",
      "direction": "๊ธฐํšŒ๋น„์šฉ์€ ์„ ํƒ์— ๋”ฐ๋ฅธ ๋ช…์‹œ์  ๋น„์šฉ๋งŒ์„ ๊ณ ๋ คํ•œ๋‹ค.",
      "options": [],
      "answer": "X"
    },
    {
      "id": "3c1ff98e-4f4c-4877-8a41-d1e4807ecaf1",
      "type": "OXChoice",
      "direction": "๊ธฐํšŒ๋น„์šฉ์€ ์„ ํƒ์— ๋”ฐ๋ฅธ ๋ช…์‹œ์  ๋น„์šฉ๋งŒ์„ ๊ณ ๋ คํ•œ๋‹ค.",
      "options": [],
      "answer": "X"
    }
  ],
  "success": true
}

Lecture API - Script

1. ์Šคํฌ๋ฆฝํŠธ ์—…๋ฐ์ดํŠธ

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
PUT /api/v1/lecture/putScript

- ์š”์ฒญ

ํ—ค๋”
์ด๋ฆ„ ์„ค๋ช… ํ•„์ˆ˜
Authorization Authorization: Bearer ${ACCESS_TOKEN} ์ธ์ฆ ๋ฐฉ์‹, ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ์ธ์ฆ ์š”์ฒญ O
๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
lectureId String ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ณ€๊ฒฝํ•  ๊ฐ•์˜ ID O
script String ์ถ”๊ฐ€ํ•  ์Šคํฌ๋ฆฝํŠธ O

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj Lecture ๊ฐ•์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง. Null ์ผ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O
Lecture
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id String ๊ฐ•์˜ ID O
name String ๊ฐ•์˜ ์ด๋ฆ„ O
processedScript String[] ๋…น์Œ๋œ ๊ฐ•์˜ ์Šคํฌ๋ฆฝํŠธ O
scheduleElementId String ์—ฐ๊ด€๋œ ScheduleElement์˜ ID O
lectureDate Date ๊ฐ•์˜ ๋‚ ์งœ O
createdAt Date ์ƒ์„ฑ๋œ ๋‚ ์งœ O
problems Problem[] ๊ฐ•์˜์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋“ค. Null ์ผ ์ˆ˜ ์žˆ์Œ. O
Problem
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id String ๋ฌธ์ œ ID O
type String ๋ฌธ์ œ์˜ ์œ ํ˜• O
direction String ๋ฌธ์ œ ๋‚ด์šฉ O
answer String ๋ฌธ์ œ์˜ ๋‹ต O
options String[] ๋ฌธ์ œ์˜ ์„ ์ง€ O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'PUT' \
  'https://www.hearus-spring-be.shop:8080/api/v1/lecture/putScript' \
  -H 'accept: application/hal+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NGI2MzY0NC05NTA3LTRiNjQtOTY3MC1hZTVkMGVhOGRjMzEiLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTc3NTg1Nn0.GpyInbVf4nmIzm45mspSv6bsN1hw8Cl0Zut3nOEi-0k' \
  -H 'Content-Type: application/json' \
  -d '{
  "lectureId": "670528813c434b411544212c",
  "script": "์ถ”๊ฐ€๋œ ์Šคํฌ๋ฆฝํŠธ1"
 
}'
์‘๋‹ต
{
  "status": "OK",
  "msg": "Lecture ProcessedScript Added",
  "object": {
    "id": "670528813c434b411544212c",
    "name": "์ƒˆ๋กœ์šด ๋…น์Œ-241008",
    "processedScript": [
      "**์•ˆ๋…•ํ•˜์„ธ์š”!** ๋ฐ˜๊ฐ€์›Œ์š”. **๋กœ๋ผ๊ณ ์‹ญ์ž…๋‹ˆ๋‹ค**, ๋‹ค์‹œ ๋ด๋ผ, ์ฃผ์‹œ์Šคํ•˜๊ณ  ์‹ถ๋‹ค๊ณ ์š”.",
      "",
      "**์ง€๊ธˆ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์€ ํ•˜๋‚˜๋งŒ์ž…๋‹ˆ๋‹ค. ๊ทผ๋ฐ ์™œ ์•ˆ ์˜ค์‹ค๊นŒ์š”?**",
      "**์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ถ๊ธˆํ•œ ๊ธธ์ด์˜ˆ์š”?**",
      "**ํ•˜์ง€๋งŒ** ๋งŽ์ด ๋ฐœ์Œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.",
      "**๋ฌธ์žฅ1**, **๋ฌธ์žฅ2**, ...",
      "**๋ฌธ๋‹จ1**, **๋ฌธ๋‹จ2**, ...",
      "**๋งˆ์ง€๋ง‰ ๋ฌธ๋‹จ**",
      "**์•ˆ๋…•ํ•˜์„ธ์š”!** ๋ฐ˜๊ฐ€์›Œ์š”. **๋กœ๋ผ๊ณ ์‹ญ์ž…๋‹ˆ๋‹ค**, ๋‹ค์‹œ ๋ด๋ผ, ์ฃผ์‹œ์Šคํ•˜๊ณ  ์‹ถ๋‹ค๊ณ ์š”.",
      "์ถ”๊ฐ€๋œ ์Šคํฌ๋ฆฝํŠธ1"
    ],
    "scheduleElementId": null,
    "lectureDate": "2024-10-08T21:41:37.000+00:00",
    "createdAt": "2024-10-08T12:41:37.275+00:00",
    "problems": []
  },
  "success": true
}

Schedule API - Schedule

1. ์‹œ๊ฐ„ํ‘œ ์ƒ์„ฑ

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
POST /api/v1/schedule/addSchedule

- ์š”์ฒญ

ํ—ค๋”
์ด๋ฆ„ ์„ค๋ช… ํ•„์ˆ˜
Authorization Authorization: Bearer ${ACCESS_TOKEN} ์ธ์ฆ ๋ฐฉ์‹, ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ์ธ์ฆ ์š”์ฒญ O
๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
name String ์ƒ์„ฑํ•  ์‹œ๊ฐ„ํ‘œ ์ด๋ฆ„ O

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj Object ์š”์ฒญ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง. ๋•Œ์— ๋”ฐ๋ผ null์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'POST' \
  'https://www.hearus-spring-be.shop:8080/api/v1/schedule/addSchedule' \
  -H 'accept: application/hal+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NGI2MzY0NC05NTA3LTRiNjQtOTY3MC1hZTVkMGVhOGRjMzEiLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTg3NzEzM30.7mekmYlkvjQmd6mxh7YnnsbXfDdcYwU4Fr-laMLdy3I' \
  -H 'Content-Type: application/json' \
  -d '{
"name":"๊น€ํžˆ์–ผ์˜ ์‹œ๊ฐ„ํ‘œ"
}'
์‘๋‹ต
{
  "status": "CREATED",
  "msg": "Schedule Created",
  "object": null,
  "success": true
}

2. ์‹œ๊ฐ„ํ‘œ ์กฐํšŒ

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
GET /api/v1/schedule/getSchedule

- ์š”์ฒญ

ํ—ค๋”
์ด๋ฆ„ ์„ค๋ช… ํ•„์ˆ˜
Authorization Authorization: Bearer ${ACCESS_TOKEN} ์ธ์ฆ ๋ฐฉ์‹, ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ์ธ์ฆ ์š”์ฒญ O
์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
name String ์กฐํšŒํ•  ์‹œ๊ฐ„ํ‘œ ์ด๋ฆ„ O

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj Schedule ์š”์ฒญ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง. ๋•Œ์— ๋”ฐ๋ผ null์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O

Schedule

์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id Integer ์‹œ๊ฐ„ํ‘œ ID O
scheduleElements ScheduleElement[] ์‹œ๊ฐ„ํ‘œ์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ์Šค์ผ€์ค„ O
name String ์‹œ๊ฐ„ํ‘œ ์ด๋ฆ„ O
userId String ์ƒ์„ฑํ•œ ์œ ์ € ID X

ScheduleElement

์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id Integer ์Šค์ผ€์ค„ ID O
scheduleId Integer ํ•ด๋‹น ์Šค์ผ€์ค„์„ ํฌํ•จํ•˜๋Š” ์‹œ๊ฐ„ํ‘œ ID O
name String ์Šค์ผ€์ค„ ์ด๋ฆ„ O
location String ์Šค์ผ€์ค„ ์ง„ํ–‰ ์žฅ์†Œ O
dayOfWeek String ์Šค์ผ€์ค„ ์ง„ํ–‰ ์š”์ผ O
color String ์Šค์ผ€์ค„์„ ํ‘œ์‹œํ•  UI์˜ ์ƒ‰์ƒ O
startTime String ์Šค์ผ€์ค„ ์‹œ์ž‘ ์‹œ๊ฐ„ O
endTime String ์Šค์ผ€์ค„ ์ข…๋ฃŒ ์‹œ๊ฐ„ O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'GET' \
  'https://www.hearus-spring-be.shop:8080/api/v1/schedule/getSchedule?name=%EA%B9%80%ED%9E%88%EC%96%BC' \
  -H 'accept: application/hal+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NGI2MzY0NC05NTA3LTRiNjQtOTY3MC1hZTVkMGVhOGRjMzEiLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTg3NzEzM30.7mekmYlkvjQmd6mxh7YnnsbXfDdcYwU4Fr-laMLdy3I'
์‘๋‹ต
{
  "status": "OK",
  "msg": "Schedule retrieved successfully",
  "object": {
    "id": 1,
    "scheduleElements": [
      {
        "id": 11,
        "scheduleId": 1,
        "name": "๋น„ํŒ์ ์‚ฌ๊ณ ์™€ ํ† ๋ก ",
        "location": "์‚ฐํ•™219",
        "dayOfWeek": "MON",
        "color": "#FFD6D6",
        "startTime": "2024-08-24T12:00:00.000+00:00",
        "endTime": "2024-08-24T15:00:00.000+00:00"
      },
      {
        "id": 12,
        "scheduleId": 1,
        "name": "์ปดํ“จํŒ…์ ์‚ฌ๊ณ ",
        "location": "์‚ฐํ•™320",
        "dayOfWeek": "TUE",
        "color": "#FFF3D6",
        "startTime": "2024-08-24T11:00:00.000+00:00",
        "endTime": "2024-08-24T13:00:00.000+00:00"
      },
      {
        "id": 14,
        "scheduleId": 1,
        "name": "๊ฒฝ์ œํ•™์›๋ก ",
        "location": "์ธ๋ฌธ106",
        "dayOfWeek": "WED",
        "color": "#D6FFDA",
        "startTime": "2024-08-24T11:00:00.000+00:00",
        "endTime": "2024-08-24T13:00:00.000+00:00"
      },
      {
        "id": 15,
        "scheduleId": 1,
        "name": "์„œ์šธ์˜ ์—ญ์‚ฌ์™€ ๋ฌธํ™”",
        "location": "์‚ฐํ•™307",
        "dayOfWeek": "WED",
        "color": "#D6DFFF",
        "startTime": "2024-08-24T13:30:00.000+00:00",
        "endTime": "2024-08-24T15:00:00.000+00:00"
      },
      {
        "id": 16,
        "scheduleId": 1,
        "name": "๊ธฐ์ดˆํ†ต๊ณ„ํ•™",
        "location": "์ธ๋ฌธ305",
        "dayOfWeek": "THU",
        "color": "#D6F8FF",
        "startTime": "2024-08-24T13:30:00.000+00:00",
        "endTime": "2024-08-24T16:30:00.000+00:00"
      },
      {
        "id": 17,
        "scheduleId": 1,
        "name": "๊ธฐ์—…๊ณผ ์‚ฌํšŒ",
        "location": "์ƒํ—ˆ109",
        "dayOfWeek": "FRI",
        "color": "#EAD6FF",
        "startTime": "2024-08-24T12:00:00.000+00:00",
        "endTime": "2024-08-24T15:00:00.000+00:00"
      },
      {
        "id": 33,
        "scheduleId": 1,
        "name": "๊ฒฝ์ œํ•™์„ธ๋ฏธ๋‚˜",
        "location": "๊ฒฝ์˜๊ด€ ์„ธ๋ฏธ๋‚˜์‹ค",
        "dayOfWeek": "FRI",
        "color": null,
        "startTime": "2023-06-16T13:00:00.000+00:00",
        "endTime": "2023-06-16T16:00:00.000+00:00"
      }
    ],
    "name": "๊น€ํžˆ์–ผ",
    "userId": null
  },
  "success": true
}

3. ์‹œ๊ฐ„ํ‘œ ์‚ญ์ œ

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
DELETE /api/v1/schedule/deleteSchedule

- ์š”์ฒญ

ํ—ค๋”
์ด๋ฆ„ ์„ค๋ช… ํ•„์ˆ˜
Authorization Authorization: Bearer ${ACCESS_TOKEN} ์ธ์ฆ ๋ฐฉ์‹, ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ์ธ์ฆ ์š”์ฒญ O
๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
name String ์‚ญ์ œํ•  ์‹œ๊ฐ„ํ‘œ ์ด๋ฆ„ O

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj Object ์š”์ฒญ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง. ๋•Œ์— ๋”ฐ๋ผ null์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'DELETE' \
  'https://www.hearus-spring-be.shop:8080/api/v1/schedule/deleteSchedule' \
  -H 'accept: application/hal+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NGI2MzY0NC05NTA3LTRiNjQtOTY3MC1hZTVkMGVhOGRjMzEiLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTg3NzEzM30.7mekmYlkvjQmd6mxh7YnnsbXfDdcYwU4Fr-laMLdy3I' \
  -H 'Content-Type: application/json' \
  -d '{
"name":"๊น€ํžˆ์–ผ์˜ ์‹œ๊ฐ„ํ‘œ"
}'
์‘๋‹ต
{
  "status": "OK",
  "msg": "Schedule Deleted",
  "object": null,
  "success": true
}

Schedule API - ScheduleElement

1. ์Šค์ผ€์ค„ ์ƒ์„ฑ

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
POST `/api/v1/schedule/addElement

- ์š”์ฒญ

ํ—ค๋”
์ด๋ฆ„ ์„ค๋ช… ํ•„์ˆ˜
Authorization Authorization: Bearer ${ACCESS_TOKEN} ์ธ์ฆ ๋ฐฉ์‹, ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ์ธ์ฆ ์š”์ฒญ O
๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
scheduleDTO ScheduleDTO ์ƒ์„ฑํ•  ์Šค์ผ€์ค„์„ ํฌํ•จํ•  ์‹œ๊ฐ„ํ‘œ ์ •๋ณด O
scheduleElementDTO ScheduleElement ์ƒ์„ฑํ•  ์Šค์ผ€์ค„ ์ •๋ณด O

ScheduleDTO

์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
name String ์ƒ์„ฑํ•  ์Šค์ผ€์ค„์„ ํฌํ•จํ•  ์‹œ๊ฐ„ํ‘œ ์ด๋ฆ„ O

ScheduleElement

์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id Integer ์Šค์ผ€์ค„ ID X
scheduleId Integer ํ•ด๋‹น ์Šค์ผ€์ค„์„ ํฌํ•จํ•˜๋Š” ์‹œ๊ฐ„ํ‘œ ID O
name String ์Šค์ผ€์ค„ ์ด๋ฆ„ O
location String ์Šค์ผ€์ค„ ์ง„ํ–‰ ์žฅ์†Œ O
dayOfWeek String ์Šค์ผ€์ค„ ์ง„ํ–‰ ์š”์ผ O
color String ์Šค์ผ€์ค„์„ ํ‘œ์‹œํ•  UI์˜ ์ƒ‰์ƒ O
startTime String ์Šค์ผ€์ค„ ์‹œ์ž‘ ์‹œ๊ฐ„ O
endTime String ์Šค์ผ€์ค„ ์ข…๋ฃŒ ์‹œ๊ฐ„ O

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj Object ์š”์ฒญ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง. ๋•Œ์— ๋”ฐ๋ผ null์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'POST' \
  'https://www.hearus-spring-be.shop:8080/api/v1/schedule/addElement' \
  -H 'accept: application/hal+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NGI2MzY0NC05NTA3LTRiNjQtOTY3MC1hZTVkMGVhOGRjMzEiLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTkyNzIzMH0.iBwrCcMA4kA1HUM87eB_jJeZNsvxeqNSzxvXPY8EtmY' \
  -H 'Content-Type: application/json' \
  -d '{
  "scheduleDTO": {
    "name": "๊น€ํžˆ์–ผ"
  },
  "scheduleElementDTO": {
	"name": "๊ฒฝ์ œํ•™์„ธ๋ฏธ๋‚˜",
  	"location": "๊ฒฝ์˜๊ด€ ์„ธ๋ฏธ๋‚˜์‹ค",
  	"dayOfWeek": "FRI",
  	"startTime": "2023-06-16T13:00:00",
  	"endTime": "2023-06-16T16:00:00"
  }
}'
์‘๋‹ต
{
  "status": "OK",
  "msg": "ScheduleElement Added",
  "object": {
    "id": 44,
    "scheduleId": 1,
    "name": "๊ฒฝ์ œํ•™์„ธ๋ฏธ๋‚˜",
    "location": "๊ฒฝ์˜๊ด€ ์„ธ๋ฏธ๋‚˜์‹ค",
    "dayOfWeek": "FRI",
    "color": null,
    "startTime": "2023-06-16T13:00:00.000+00:00",
    "endTime": "2023-06-16T16:00:00.000+00:00"
  },
  "success": true
}

2. ์Šค์ผ€์ค„ ์‚ญ์ œ

- ๊ธฐ๋ณธ์ •๋ณด

HTTP Method Endpoint
DELETE `/api/v1/schedule/deleteElement

- ์š”์ฒญ

ํ—ค๋”
์ด๋ฆ„ ์„ค๋ช… ํ•„์ˆ˜
Authorization Authorization: Bearer ${ACCESS_TOKEN} ์ธ์ฆ ๋ฐฉ์‹, ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ์ธ์ฆ ์š”์ฒญ O
๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
scheduleDTO ScheduleDTO ์‚ญ์ œํ•  ์Šค์ผ€์ค„์„ ํฌํ•จํ•  ์‹œ๊ฐ„ํ‘œ ์ •๋ณด O
scheduleElementDTO ScheduleElement ์‚ญ์ œํ•  ์Šค์ผ€์ค„ ์ •๋ณด O

ScheduleDTO

์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
name String ์ƒ์„ฑํ•  ์Šค์ผ€์ค„์„ ํฌํ•จํ•  ์‹œ๊ฐ„ํ‘œ ์ด๋ฆ„ O

ScheduleElement

์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
id Integer ์Šค์ผ€์ค„ ID O

- ์‘๋‹ต

๋ณธ๋ฌธ
์ด๋ฆ„ ํƒ€์ž… ์„ค๋ช… ํ•„์ˆ˜
status String Http ์ƒํƒœ ๋ฉ”์‹œ์ง€ O
msg String ์š”์ฒญ ํŠน์ด์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€ O
obj Object ์š”์ฒญ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง. ๋•Œ์— ๋”ฐ๋ผ null์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ O
success Boolean ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€ O

- ์˜ˆ์ œ

์š”์ฒญ
curl -X 'DELETE' \
  'https://www.hearus-spring-be.shop:8080/api/v1/schedule/deleteElement' \
  -H 'accept: application/hal+json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NGI2MzY0NC05NTA3LTRiNjQtOTY3MC1hZTVkMGVhOGRjMzEiLCJyb2xlIjoiVVNFUiIsImV4cCI6MTcyOTkyNzIzMH0.iBwrCcMA4kA1HUM87eB_jJeZNsvxeqNSzxvXPY8EtmY' \
  -H 'Content-Type: application/json' \
  -d '{
  "scheduleDTO": {
    "name": "๊น€ํžˆ์–ผ"
  },
  "scheduleElementDTO": {
    "id": 34
  }
}'
์‘๋‹ต
{
  "status": "OK",
  "msg": "ScheduleElement Deleted",
  "object": null,
  "success": true
}

Clone this wiki locally