1.0.0 • Published 3 years ago

@my-school.info/neis-api v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

neis-api

나이스 오픈 API 라이브러리 - 학교정보, 급식정보, 학사일정, 시간표, 반정보, 학교학과정보, 학교계열정보, 강의실정보, 특수학교시간표

본 라이브러리는 Node.js 환경에서 이용할 수 있는 나이스 오픈 API 라이브러리입니다.

설치

yarn add @my-school.info/neis-api

npm install @my-school.info/neis-api

API

Neis

import Neis from "@my-school.info/neis-api";
const neis = new Neis({ KEY: "인증키", Type: "json|xml" });
const Neis = require("@my-school.info/neis-api");
const neis = new Neis({ KEY: "인증키", Type: "json|xml" });

(Method) Neis.getSchoolInfo

입력된 데이터를 통해 학교를 검색하고 학교들의 정보를 제공합니다.

ParameterTypeRequiredDescription
argsISchoolInfoRequest
args.ATPT_OFCDC_SC_CODEstring시도교육청코드
args.SD_SCHUL_CODEstring표준학교코드
args.SCHUL_NMstring학교명
args.SCHUL_KND_SC_NMstring학교종류명
args.LCTN_SC_NMstring소재지명
args.FOND_SC_NMstring설립명
configIConfig
config.pIndexnumber페이지 위치
config.pSizenumber페이지 당 신청 숫자

Return Promise<ISchoolInfoRow[]>

const neis = new Neis();
neis.getSchoolInfo(
	{
		/* args */
	},
	{
		/* config */
	}
);

(Method) Neis.getMealInfo

입력된 데이터를 통해 학교의 급식 정보를 제공합니다.

ParameterTypeRequiredDescription
argsIMealInfoRequest
args.ATPT_OFCDC_SC_CODEstring시도교육청코드
args.SD_SCHUL_CODEstring표준학교코드
args.MMEAL_SC_CODEstring식사코드
args.MLSV_YMDstring급식일자
args.MLSV_FROM_YMDstring급식시작일자
args.MLSV_TO_YMDstring급식종료일자
configIConfig
config.pIndexnumber페이지 위치
config.pSizenumber페이지 당 신청 숫자

Return Promise<IMealInfoRow[]>

const neis = new Neis();
neis.getMealInfo(
	{
		/* args */
	},
	{
		/* config */
	}
);

(Method) Neis.getClassInfo

입력된 데이터를 통해 학교의 반정보를 제공합니다.

ParameterTypeRequiredDescription
argsIClassInfoRequest
args.ATPT_OFCDC_SC_CODEstring시도교육청코드
args.SD_SCHUL_CODEstring표준학교코드
args.AYstring학년도
args.GRADEstring학년
args.DGHT_CRSE_SC_NMstring주야과정명
args.SCHUL_CRSE_SC_NMstring학교과정명
args.ORD_SC_NMstring계열명
args.DDDEP_NMstring학과명
configIConfig
config.pIndexnumber페이지 위치
config.pSizenumber페이지 당 신청 숫자

Return Promise<IClassInfoRow[]>

const neis = new Neis();
neis.getClassInfo(
	{
		/* args */
	},
	{
		/* config */
	}
);

(Method) Neis.getMajorInfo

입력된 데이터를 통해 학교학과정보를 제공합니다

ParameterTypeRequiredDescription
argsIMajorInfoRequest
args.ATPT_OFCDC_SC_CODEstring시도교육청코드
args.SD_SCHUL_CODEstring표준학교코드
args.DGHT_CRSE_SC_NMstring주야과정명
args.ORD_SC_NMstring계열명
configIConfig
config.pIndexnumber페이지 위치
config.pSizenumber페이지 당 신청 숫자

Return Promise<IMajorInfoRow[]>

const neis = new Neis();
neis.getMajorInfo(
	{
		/* args */
	},
	{
		/* config */
	}
);

(Method) Neis.getAflcoInfo

입력된 데이터를 통해 학교계열정보를 제공합니다

ParameterTypeRequiredDescription
argsIAflcoInfoRequest
args.ATPT_OFCDC_SC_CODEstring시도교육청코드
args.SD_SCHUL_CODEstring표준학교코드
args.DGHT_CRSE_SC_NMstring주야과정명
configIConfig
config.pIndexnumber페이지 위치
config.pSizenumber페이지 당 신청 숫자

Return Promise<IAflcoInfoRow[]>

const neis = new Neis();
neis.getAflcoInfo(
	{
		/* args */
	},
	{
		/* config */
	}
);

(Method) Neis.getTimeClassroomInfo

입력된 데이터를 통해 시간표강의실정보를 제공합니다

ParameterTypeRequiredDescription
argsITimeClassroomInfoRequest
args.ATPT_OFCDC_SC_CODEstring시도교육청코드
args.SD_SCHUL_CODEstring표준학교코드
args.AYstring학년도
args.GRADEstring학년
args.SEMstring학기
args.SCHUL_CRSE_SC_NMstring학교과정명
args.DGHT_CRSE_SC_NMstring주야과정명
args.ORD_SC_NMstring계열명
args.DDDEP_NMstring학과명
configIConfig
config.pIndexnumber페이지 위치
config.pSizenumber페이지 당 신청 숫자

Return Promise<ITimeClassroomInfoRow[]>

const neis = new Neis();
neis.getTimeClassroomInfo(
	{
		/* args */
	},
	{
		/* config */
	}
);

(Method) Neis.getSchedule

입력된 데이터를 통해 학교학사일정을 제공합니다

ParameterTypeRequiredDescription
argsIScheduleRequest
args.ATPT_OFCDC_SC_CODEstring시도교육청코드
args.SD_SCHUL_CODEstring표준학교코드
args.DGHT_CRSE_SC_NMstring주야과정명
args.SCHUL_CRSE_SC_NMstring학교과정명
args.AA_YMDstring학사일자
args.AA_FROM_YMDstring학사시작일자
args.AA_TO_YMDstring학사종료일자
configIConfig
config.pIndexnumber페이지 위치
config.pSizenumber페이지 당 신청 숫자

Return Promise<IScheduleRow[]>

const neis = new Neis();
neis.getSchedule(
	{
		/* args */
	},
	{
		/* config */
	}
);

(Method) Neis.getTimetable

입력된 데이터를 통해 학교시간표를 제공합니다

ParameterTypeRequiredDescription
schoolDataISchoolInfoRequest
schoolData.ATPT_OFCDC_SC_CODEstring시도교육청코드
schoolData.SD_SCHUL_CODEstring표준학교코드
schoolData.SCHUL_NMstring학교명
schoolData.SCHUL_KND_SC_NMstring학교종류명
schoolData.LCTN_SC_NMstring소재지명
schoolData.FOND_SC_NMstring설립명
argsITimetableRequest
args.ATPT_OFCDC_SC_CODEstring시도교육청코드
args.SD_SCHUL_CODEstring표준학교코드
args.AYstring학년도
args.SEMstring학기
args.ALL_TI_YMDstring시간표일자
args.DGHT_CRSE_SC_NMstring주야과정명
args.GRADEstring학년
args.CLASS_NMstring반명
args.PERIOstring교시
args.TI_FROM_YMDstring시간표시작일자
args.TI_TO_YMDstring시간표종료일자
configIConfig
config.pIndexnumber페이지 위치
config.pSizenumber페이지 당 신청 숫자

Notification

args.ATPT_OFCDC_SC_CODE, args.SD_SCHUL_CODENeis.getSchoolInfo 메소드를 통해 학교 조회 후 조회된 학교의 시도교육청코드, 표준학교코드 값을 전달하여 사용합니다.


Return Promise<ITimetableRow[]>

const neis = new Neis();
neis.getTimetable(
	{
		/* args */
	},
	{
		/* config */
	}
);

예제코드

아래 예저는 한세사이버보안고등학교를 기준으로 진행되었습니다.

학교기본정보 조회

const schoolInfo = await neis.getSchoolInfo({ SCHUL_NM: "한세사이버보안고등학교" });
console.log(schoolInfo);

/* Output */
[
	{
		ATPT_OFCDC_SC_CODE: "B10",
		ATPT_OFCDC_SC_NM: "서울특별시교육청",
		SD_SCHUL_CODE: "7010911",
		SCHUL_NM: "한세사이버보안고등학교",
		ENG_SCHUL_NM: "Hansei Cyber Security High School",
		SCHUL_KND_SC_NM: "고등학교",
		LCTN_SC_NM: "서울특별시",
		JU_ORG_NM: "서울특별시교육청",
		FOND_SC_NM: "사립",
		ORG_RDNZC: "04129 ",
		ORG_RDNMA: "서울특별시 마포구 마포대로11길 44-80",
		ORG_RDNDA: "(아현동)",
		ORG_TELNO: "02-362-0130",
		HMPG_ADRES: "http://www.hansei.org",
		COEDU_SC_NM: "남여공학",
		ORG_FAXNO: "02-312-3996",
		HS_SC_NM: "특성화고",
		INDST_SPECL_CCCCL_EXST_YN: "N",
		HS_GNRL_BUSNS_SC_NM: "전문계",
		SPCLY_PURPS_HS_ORD_NM: null,
		ENE_BFE_SEHF_SC_NM: "전기",
		DGHT_SC_NM: "주간",
		FOND_YMD: "19941005",
		FOAS_MEMRD: "19941005",
		LOAD_DTM: "20201210104203",
	},
];

Response

KeyTypeValue
ATPT_OFCDC_SC_CODEString시도교육청코드
ATPT_OFCDC_SC_NMString시도교육청명
SD_SCHUL_CODEString표준학교코드
SCHUL_NMString학교명
ENG_SCHUL_NMString영문학교명
SCHUL_KND_SC_NMString학교종류명
LCTN_SC_NMString소재지명
JU_ORG_NMString관할조직명
FOND_SC_NMString설립명
ORG_RDNZCString도로명우편번호
ORG_RDNMAString도로명주소
ORG_RDNDAString도로명상세주소
ORG_TELNOString전화번호
HMPG_ADRESString홈페이지주소
COEDU_SC_NMString남녀공학구분명
ORG_FAXNOString팩스번호
HS_SC_NMString고등학교구분명
INDST_SPECL_CCCCL_EXST_YNString산업체특별학급존재여부
HS_GNRL_BUSNS_SC_NMString고등학교일반실업구분명
SPCLY_PURPS_HS_ORD_NMString특수목적고등학교계열명
ENE_BFE_SEHF_SC_NMString입시전후기구분명
DGHT_SC_NMString주야구분명
FOND_YMDString설립일자
FOAS_MEMRDString개교기념일
LOAD_DTMString적재일시

급식식단정보 조회

const school = await neis.getSchoolInfo({ SCHUL_NM: "한세사이버보안고등학교" });
const mealInfo = await neis.getMealInfo({ ATPT_OFCDC_SC_CODE: school[0].ATPT_OFCDC_SC_CODE, SD_SCHUL_CODE: school[0].SD_SCHUL_CODE, MLSV_FROM_YMD: "20210115" });

console.log(mealInfo);

/* Output */
[
	{
		ATPT_OFCDC_SC_CODE: "B10",
		ATPT_OFCDC_SC_NM: "서울특별시교육청",
		SD_SCHUL_CODE: "7010911",
		SCHUL_NM: "한세사이버보안고등학교",
		MMEAL_SC_CODE: "2",
		MMEAL_SC_NM: "중식",
		MLSV_YMD: "20210115",
		MLSV_FGR: "39",
		DDISH_NM: "나물비빔밥/약고추장1.5.6.16.<br/>청국장찌개5.6.9.13.<br/>수제간장치킨13.15.<br/>포기김치9.13.<br/>딸기",
		ORPLC_INFO: "쌀 : 국내산<br/>김치류 : 국내산<br/>고춧가루(김치류) : 국내산<br/>쇠고기(종류) : 국내산(한우)<br/>돼지고기 : 국내산<br/>닭고기 : 국내산<br/>오리고기 : 국내산<br/>쇠고기 식육가공품 : 국내산<br/>돼지고기 식육가공품 : 국내산<br/>닭고기 식육가공품 : 국내산<br/>오리고기 가공품 : 국내산<br/>낙지 : 국내산<br/>고등어 : 국내산<br/>갈치 : 국내산<br/>오징어 : 국내산<br/>꽃게 : 국내산<br/>참조기 : 국내산<br/>콩 : 국내산",
		CAL_INFO: "650.8 Kcal",
		NTR_INFO: "탄수화물(g) : 100.4<br/>단백질(g) : 48.5<br/>지방(g) : 11.6<br/>비타민A(R.E) : 563.1<br/>티아민(mg) : 0.6<br/>리보플라빈(mg) : 0.9<br/>비타민C(mg) : 69.2<br/>칼슘(mg) : 310.1<br/>철분(mg) : 7.6",
		MLSV_FROM_YMD: "20210115",
		MLSV_TO_YMD: "20210115",
	},
];

Response

KeyTypeValue
ATPT_OFCDC_SC_CODEString시도교육청코드
ATPT_OFCDC_SC_NMString시도교육청명
SD_SCHUL_CODEString표준학교코드
SCHUL_NMString학교명
MMEAL_SC_CODEString식사코드
MMEAL_SC_NMString식사명
MLSV_YMDString급식일자
MLSV_FGRString급식인원수
DDISH_NMString요리명
ORPLC_INFOString원산지정보
CAL_INFOString칼로리정보
NTR_INFOString영양정보
MLSV_FROM_YMDString급식시작일자
MLSV_TO_YMDString급식종료일자

반정보 조회

const school = await neis.getSchoolInfo({ SCHUL_NM: "한세사이버보안고등학교" });
const classInfo = await neis.getClassInfo({ ATPT_OFCDC_SC_CODE: school[0].ATPT_OFCDC_SC_CODE, SD_SCHUL_CODE: school[0].SD_SCHUL_CODE, AY: "2021" });

console.log(classInfo);

/* Output */
[
	{
		ATPT_OFCDC_SC_CODE: "B10",
		ATPT_OFCDC_SC_NM: "서울특별시교육청",
		SD_SCHUL_CODE: "7010911",
		SCHUL_NM: "한세사이버보안고등학교",
		AY: "2021",
		GRADE: "1",
		DGHT_CRSE_SC_NM: "주간",
		SCHUL_CRSE_SC_NM: "고등학교",
		ORD_SC_NM: "공업계",
		DDDEP_NM: "해킹보안과정",
		CLASS_NM: "1",
		LOAD_DTM: "20210201003115",
	},
];
KeyTypeValue
ATPT_OFCDC_SC_CODEString시도교육청코드
ATPT_OFCDC_SC_NMString시도교육청명
SD_SCHUL_CODEString표준학교코드
SCHUL_NMString학교명
AYString학년도
GRADEString학년
DGHT_CRSE_SC_NMString주야과정명
SCHUL_CRSE_SC_NMString학교과정명
ORD_SC_NMString계열명
DDDEP_NMString학과명
CLASS_NMString반명
LOAD_DTMString적재일시

학교학과정보 조회

const school = await neis.getSchoolInfo({ SCHUL_NM: "한세사이버보안고등학교" });
const majorInfo = await neis.getMajorInfo({ ATPT_OFCDC_SC_CODE: school[0].ATPT_OFCDC_SC_CODE, SD_SCHUL_CODE: school[0].SD_SCHUL_CODE });

console.log(majorInfo);

/* Output */
[
	{
		ATPT_OFCDC_SC_CODE: "B10",
		ATPT_OFCDC_SC_NM: "서울특별시교육청",
		SD_SCHUL_CODE: "7010911",
		SCHUL_NM: "한세사이버보안고등학교",
		DGHT_CRSE_SC_NM: "주간",
		ORD_SC_NM: "공업계",
		DDDEP_NM: "해킹보안과정",
		LOAD_DTM: "20210201005009",
	},
];
KeyTypeValue
ATPT_OFCDC_SC_CODEString시도교육청코드
ATPT_OFCDC_SC_NMString시도교육청명
SD_SCHUL_CODEString표준학교코드
SCHUL_NMString학교명
DGHT_CRSE_SC_NMString주야과정명
ORD_SC_NMString계열명
DDDEP_NMString학과명
LOAD_DTMString적재일시

학교계열정보 조회

const school = await neis.getSchoolInfo({ SCHUL_NM: "한세사이버보안고등학교" });
const aflcoInfo = await neis.getAflcoInfo({ ATPT_OFCDC_SC_CODE: school[0].ATPT_OFCDC_SC_CODE, SD_SCHUL_CODE: school[0].SD_SCHUL_CODE });

console.log(aflcoInfo);

/* Output */
[
	{
		ATPT_OFCDC_SC_CODE: "B10",
		ATPT_OFCDC_SC_NM: "서울특별시교육청",
		SD_SCHUL_CODE: "7010911",
		SCHUL_NM: "한세사이버보안고등학교",
		DGHT_CRSE_SC_NM: "야간",
		ORD_SC_NM: "공업계",
		LOAD_DTM: "20210201004009",
	},
	{
		ATPT_OFCDC_SC_CODE: "B10",
		ATPT_OFCDC_SC_NM: "서울특별시교육청",
		SD_SCHUL_CODE: "7010911",
		SCHUL_NM: "한세사이버보안고등학교",
		DGHT_CRSE_SC_NM: "주간",
		ORD_SC_NM: "공업계",
		LOAD_DTM: "20210201004009",
	},
];
KeyTypeValue
ATPT_OFCDC_SC_CODEString시도교육청코드
ATPT_OFCDC_SC_NMString시도교육청명
SD_SCHUL_CODEString표준학교코드
SCHUL_NMString학교명
DGHT_CRSE_SC_NMString주야과정명
ORD_SC_NMString계열명
LOAD_DTMString적재일시

시간표강의실정보 조회

const school = await neis.getSchoolInfo({ SCHUL_NM: "한세사이버보안고등학교" });
const timeClassroomInfo = await neis.getTimeClassroomInfo({ ATPT_OFCDC_SC_CODE: school[0].ATPT_OFCDC_SC_CODE, SD_SCHUL_CODE: school[0].SD_SCHUL_CODE, AY: "2020" });

console.log(timeClassroomInfo);

/* Output */
[
	{
		ATPT_OFCDC_SC_CODE: "B10",
		ATPT_OFCDC_SC_NM: "서울특별시교육청",
		SD_SCHUL_CODE: "7010911",
		SCHUL_NM: "한세사이버보안고등학교",
		AY: "2020",
		GRADE: "1",
		SEM: "1",
		SCHUL_CRSE_SC_NM: "고등학교",
		DGHT_CRSE_SC_NM: "주간",
		ORD_SC_NM: "공업계",
		DDDEP_NM: "게임과",
		CLRM_NM: "1",
		LOAD_DTM: "20210214054224",
	},
];
KeyTypeValue
ATPT_OFCDC_SC_CODEString시도교육청코드
ATPT_OFCDC_SC_NMString시도교육청명
SD_SCHUL_CODEString표준학교코드
SCHUL_NMString학교명
AYString학년도
GRADEString학년
SEMString학기
SCHUL_CRSE_SC_NMString학교과정명
DGHT_CRSE_SC_NMString주야과정명
ORD_SC_NMString계열명
DDDEP_NMString학과명
CLRM_NMString강의실명
LOAD_DTMString적재일시

학교학사일정 조회

const school = await neis.getSchoolInfo({ SCHUL_NM: "한세사이버보안고등학교" });
const schedule = await neis.getSchedule({ ATPT_OFCDC_SC_CODE: school[0].ATPT_OFCDC_SC_CODE, SD_SCHUL_CODE: school[0].SD_SCHUL_CODE, AA_FROM_YMD: "20210101" });

console.log(schedule);

/* Output */
[
	{
		ATPT_OFCDC_SC_CODE: "B10",
		ATPT_OFCDC_SC_NM: "서울특별시교육청",
		SD_SCHUL_CODE: "7010911",
		SCHUL_NM: "한세사이버보안고등학교",
		AY: "2020",
		DGHT_CRSE_SC_NM: "주간",
		SCHUL_CRSE_SC_NM: "고등학교",
		SBTR_DD_SC_NM: "휴업일",
		AA_YMD: "20210227",
		EVENT_NM: "토요휴업일",
		EVENT_CNTNT: null,
		ONE_GRADE_EVENT_YN: "Y",
		TW_GRADE_EVENT_YN: "Y",
		THREE_GRADE_EVENT_YN: "Y",
		FR_GRADE_EVENT_YN: "*",
		FIV_GRADE_EVENT_YN: "*",
		SIX_GRADE_EVENT_YN: "*",
		LOAD_DTM: "20210215004607",
	},
];
KeyTypeValue
ATPT_OFCDC_SC_CODEString시도교육청코드
ATPT_OFCDC_SC_NMString시도교육청명
SD_SCHUL_CODEString표준학교코드
SCHUL_NMString학교명
AYString학년도
DGHT_CRSE_SC_NMString주야과정명
SCHUL_CRSE_SC_NMString학교과정명
SBTR_DD_SC_NMString수업공제일명
AA_YMDString학사일자
EVENT_NMString행사명
EVENT_CNTNTString행사내용
ONE_GRADE_EVENT_YNString1학년행사여부
TW_GRADE_EVENT_YNString2학년행사여부
THREE_GRADE_EVENT_YNString3학년행사여부
FR_GRADE_EVENT_YNString4학년행사여부
FIV_GRADE_EVENT_YNString5학년행사여부
SIX_GRADE_EVENT_YNString6학년행사여부
LOAD_DTMString적재일시

학교시간표 조회

const school = await neis.getSchoolInfo({ SCHUL_NM: "한세사이버보안고등학교" });
const timetable = await neis.getTimetable({ ATPT_OFCDC_SC_CODE: school[0].ATPT_OFCDC_SC_CODE, SD_SCHUL_CODE: school[0].SD_SCHUL_CODE }, { AY: "2020", SEM: "2" });

console.log(timetable);

/* Output */
[
	{
		ATPT_OFCDC_SC_CODE: "B10",
		ATPT_OFCDC_SC_NM: "서울특별시교육청",
		SD_SCHUL_CODE: "7010911",
		SCHUL_NM: "한세사이버보안고등학교",
		AY: "2020",
		SEM: "2",
		ALL_TI_YMD: "20200902",
		DGHT_CRSE_SC_NM: "주간",
		ORD_SC_NM: "공업계",
		DDDEP_NM: "정보보안과정",
		GRADE: "1",
		CLRM_NM: "2",
		CLASS_NM: "2",
		PERIO: "5",
		ITRT_CNTNT: "통합사회",
		LOAD_DTM: "20200906042101",
	},
];
KeyTypeValue
ATPT_OFCDC_SC_CODEString시도교육청코드
ATPT_OFCDC_SC_NMString시도교육청명
SD_SCHUL_CODEString표준학교코드
SCHUL_NMString학교명
AYString학년도
SEMString학기
ALL_TI_YMDString시간표일자
DGHT_CRSE_SC_NMString주야과정명
GRADEString학년
CLASS_NMString반명
PERIOString교시
ITRT_CNTNTString수업내용
LOAD_DTMString적재일시

오류, 문제 신고

오류 제보 및 PR은 매우 환영입니다!

업데이트

  • 1.0.0 - 첫번재 릴리즈