Sign inSign up

dohun0310/byhs-api

By dohun0310

•Updated about 2 years ago

Image
0

1.8K

dohun0310/byhs-api repository overview

이 프로젝트는 누구에게나 열려 있습니다. https://github.com/dohun0310/BYHS-API⁠

⁠부용고등학교 급식/시간표 조회 API 가이드

부용고등학교의 급식과 시간표를 조회할 수 있는 API의 가이드입니다.

⁠시작하기

⁠개발용 사전 요구사항
  1. Node.js가 설치되어 있어야 합니다.
  2. 프로젝트에 필요한 환경 변수를 설정하기 위해 .env 파일이 필요합니다.
⁠운영용 사전 요구사항
  1. Docker가 설치되어 있어야 합니다.
  2. Container 생성 시, API_KEY를 지정해야 합니다.
  3. 본인 환경에 맞게 포트포워딩을 해야 합니다.
⁠로컬 환경
  1. 이 프로젝트를 클론합니다.
git clone https://github.com/dohun0310/BYHS-API
  1. 프로젝트 디렉토리로 이동한 후, 필요한 패키지를 설치합니다.
cd BYHS-API
yarn add
  1. .env 파일을 프로젝트 루트에 생성하고, 다음과 같이 API 키를 추가합니다.
API_KEY = NEIS_API_KEY
  1. 서버를 시작합니다.
yarn start
  1. 서버가 시작되면, 다음 주소를 통해 애플리케이션에 접근할 수 있습니다.
http://localhost:8080
⁠운영 환경
  1. Docker⁠를 설치합니다.

  2. Image를 가져옵니다.

sudo docker image pull dohun0310/byhs-api:latest
  1. Container를 생성합니다.
sudo docker run -d --name byhs-api -p 8080:8080 -e API_KEY=YOUR_NEIS_API_KEY --restart=on-failure dohun0310/byhs-api:latest
  1. 서버가 시작되면, 다음 주소를 통해 애플리케이션에 접근할 수 있습니다.
API_URL:8080

⁠API 사용법

endpointDescriptionParameters
/getTodayTimeTablegrade와 class에 해당하는 학년과 반의 오늘 시간표를 조회합니다.grade, class
/getWeekTimeTablegrade와 class에 해당하는 학년과 반의 이번 주 시간표를 조회합니다. 만약, 오늘이 목요일 이후라면 다음 주 금요일까지의 시간표를 조회합니다.grade, class
/getTodayMeal오늘의 식단 정보를 조회합니다.
/getMonthMeal이번 달 식단 정보를 조회합니다. 만약, 오늘이 이번 달의 마지막 주라면 다음 달 말일까지의 식단을 조회합니다.
⁠응답 형식

해당 API는 JSON 형식으로 데이터를 반환합니다. 각 엔드포인트에 따라 다음과 같은 정보를 포함할 수 있습니다.

VariableTypeDescription
RESULT_CODEInteger200: Success / 404: Not Found / 500: Error
RESULT_MSGString결과 코드를 설명하는 짧은 메시지로, 요청 처리 결과에 대한 요약 정보를 제공합니다.
RESULT_DATAObject요청에 대한 응답으로 반환되는 실제 데이터입니다.
⁠요청 예제
⁠/getTodayTimeTable

요청

API_URL/getTodayTimeTable/3(학년)/10(반)

응답

[
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 1일 월요일",
      "period":[
        "1", "2", "3", "4", "5", "6"
      ], 
      "subject":[
        "1교시", "2교시", "3교시", "4교시", "5교시", "6교시"
      ]
    }
  }
]

⁠/getWeekTimeTable

요청

API_URL/getWeekTimeTable/3(학년)/10(반)

응답

[
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 1일 월요일",
      "period":[
        "1", "2", "3", "4", "5", "6"
      ], 
      "subject":[
        "1교시", "2교시", "3교시", "4교시", "5교시", "6교시"
      ]
    }
  },
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 2일 화요일",
      "period":[
        "1", "2", "3", "4", "5", "6", "7"
      ], 
      "subject":[
        "1교시", "2교시", "3교시", "4교시", "5교시", "6교시", "7교시"
      ]
    }
  },
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 3일 수요일",
      "period":[
        "1", "2", "3", "4", "5", "6", "7"
      ], 
      "subject":[
        "1교시", "2교시", "3교시", "4교시", "5교시", "6교시", "7교시"
      ]
    }
  },
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 4일 목요일",
      "period":[
        "1", "2", "3", "4", "5", "6", "7"
      ], 
      "subject":[
        "1교시", "2교시", "3교시", "4교시", "5교시", "6교시", "7교시"
      ]
    }
  },
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 5일 금요일",
      "period":[
        "1", "2", "3", "4", "5", "6", "7"
      ], 
      "subject":[
        "1교시", "2교시", "3교시", "4교시", "5교시", "6교시", "7교시"
      ]
    }
  }
]
[
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 5일 금요일",
      "period":[
        "1", "2", "3", "4", "5", "6", "7"
      ], 
      "subject":[
        "1교시", "2교시", "3교시", "4교시", "5교시", "6교시", "7교시"
      ]
    }
  },
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 8일 월요일",
      "period":[
        "1", "2", "3", "4", "5", "6"
      ], 
      "subject":[
        "1교시", "2교시", "3교시", "4교시", "5교시", "6교시"
      ]
    }
  },
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 9일 화요일",
      "period":[
        "1", "2", "3", "4", "5", "6", "7"
      ], 
      "subject":[
        "1교시", "2교시", "3교시", "4교시", "5교시", "6교시", "7교시"
      ]
    }
  },
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 10일 수요일",
      "period":[
        "1", "2", "3", "4", "5", "6", "7"
      ], 
      "subject":[
        "1교시", "2교시", "3교시", "4교시", "5교시", "6교시", "7교시"
      ]
    }
  },
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 11일 목요일",
      "period":[
        "1", "2", "3", "4", "5", "6", "7"
      ], 
      "subject":[
        "1교시", "2교시", "3교시", "4교시", "5교시", "6교시", "7교시"
      ]
    }
  },
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 12일 금요일",
      "period":[
        "1", "2", "3", "4", "5", "6", "7"
      ], 
      "subject":[
        "1교시", "2교시", "3교시", "4교시", "5교시", "6교시", "7교시"
      ]
    }
  }
]

⁠/getTodayMeal

요청

API_URL/getTodayMeal

응답

[
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 1일 월요일",
      "dish": [
        "밥 (1.2.3)<br/>국 (4.5.6)<br/>김치 (7.8.9)<br/>고기 (10.11.12)<br/>채소 (13.14.15)"
      ],
      "calorie": [
        "878.0 Kcal"
      ]
    }
  }
]

⁠/getMonthMeal

요청

API_URL/getMonthMeal

응답

[
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 1일 월요일",
      "dish": [
        "밥 (1.2.3)<br/>국 (4.5.6)<br/>김치 (7.8.9)<br/>고기 (10.11.12)<br/>채소 (13.14.15)"
      ],
      "calorie": [
        "878.0 Kcal"
      ]
    }
  },
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 2일 화요일",
      "dish": [
        "밥 (1.2.3)<br/>국 (4.5.6)<br/>김치 (7.8.9)<br/>고기 (10.11.12)<br/>채소 (13.14.15)"
      ],
      "calorie": [
        "1387.3 Kcal"
      ]
    }
  },
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 3일 수요일",
      "dish": [
        "밥 (1.2.3)<br/>국 (4.5.6)<br/>김치 (7.8.9)<br/>고기 (10.11.12)<br/>채소 (13.14.15)"
      ],
      "calorie": [
        "1414.0 Kcal"
      ]
    }
  },
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 4일 목요일",
      "dish": [
        "밥 (1.2.3)<br/>국 (4.5.6)<br/>김치 (7.8.9)<br/>고기 (10.11.12)<br/>채소 (13.14.15)"
      ],
      "calorie": [
        "915.9 Kcal"
      ]
    }
  },
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 5일 금요일",
      "dish": [
        "밥 (1.2.3)<br/>국 (4.5.6)<br/>김치 (7.8.9)<br/>고기 (10.11.12)<br/>채소 (13.14.15)"
      ],
      "calorie": [
        "823.9 Kcal"
      ]
    }
  },

  ...

  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 31일 수요일",
      "dish": [
        "밥 (1.2.3)<br/>국 (4.5.6)<br/>김치 (7.8.9)<br/>고기 (10.11.12)<br/>채소 (13.14.15)"
      ],
      "calorie": [
        "823.9 Kcal"
      ]
    }
  }
]
[
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 30일 화요일",
      "dish": [
        "밥 (1.2.3)<br/>국 (4.5.6)<br/>김치 (7.8.9)<br/>고기 (10.11.12)<br/>채소 (13.14.15)"
      ],
      "calorie": [
        "878.0 Kcal"
      ]
    }
  },
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "1월 31일 수요일",
      "dish": [
        "밥 (1.2.3)<br/>국 (4.5.6)<br/>김치 (7.8.9)<br/>고기 (10.11.12)<br/>채소 (13.14.15)"
      ],
      "calorie": [
        "823.9 Kcal"
      ]
    }
  },
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "2월 1일 목요일",
      "dish": [
        "밥 (1.2.3)<br/>국 (4.5.6)<br/>김치 (7.8.9)<br/>고기 (10.11.12)<br/>채소 (13.14.15)"
      ],
      "calorie": [
        "823.9 Kcal"
      ]
    }
  },
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "2월 2일 금요일",
      "dish": [
        "밥 (1.2.3)<br/>국 (4.5.6)<br/>김치 (7.8.9)<br/>고기 (10.11.12)<br/>채소 (13.14.15)"
      ],
      "calorie": [
        "823.9 Kcal"
      ]
    }
  },
  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "2월 5일 화요일",
      "dish": [
        "밥 (1.2.3)<br/>국 (4.5.6)<br/>김치 (7.8.9)<br/>고기 (10.11.12)<br/>채소 (13.14.15)"
      ],
      "calorie": [
        "823.9 Kcal"
      ]
    }
  },

  ...

  {
    "RESULT_CODE": 200,
    "RESULT_MSG": "Success",
    "RESULT_DATA": {
      "date": "2월 28일 수요일",
      "dish": [
        "밥 (1.2.3)<br/>국 (4.5.6)<br/>김치 (7.8.9)<br/>고기 (10.11.12)<br/>채소 (13.14.15)"
      ],
      "calorie": [
        "823.9 Kcal"
      ]
    }
  }
]

⁠개발 환경

  • Node.js
  • Express.js
  • TypeScript
  • Axios
  • dotenv
  • Docker
  • Jenkins

⁠기여하기

이 프로젝트에 기여하고 싶으신가요? 기여는 언제나 환영입니다! Pull request 해주시면 적극 검토 후 반영하겠습니다.

Tag summary

Content type

Image

Digest

sha256:0e6c68730…

Size

403.2 MB

Last updated

about 2 years ago

docker pull dohun0310/byhs-api