Skip to content

나이스 교육정보 개방 포털의 OpenAPI를 쉽게 사용할 수 있도록 도와주는 라이브러리입니다.

License

Notifications You must be signed in to change notification settings

kimcore/neis.kt

Repository files navigation

neis.kt

image image

나이스 교육정보 개방 포털의 OpenAPI를 쉽게 사용할 수 있도록 도와주는 라이브러리입니다.

설치

repositories {
    maven("https://jitpack.io")
}

dependencies {
    implementation("com.github.kimcore", "neis.kt", "1.6")
    implementation("io.ktor", "ktor-client-cio", ktorVersion) // ktor.io 에서 최신 버전을 확인해주세요
}

사용법

NeisAPI 인스턴스 생성

나이스 교육정보 개방 포털에서 발급받은 인증키를 설정해주세요.

KEY를 설정하지 않으면 받을 수 있는 결과가 5개로 제한됩니다.

val KEY = "인증키"
val neis = NeisAPI(KEY)

학교 검색

List<School>

학교 이름으로 검색

val schoolName = "서울고등학교"

neis.searchSchool(schoolName)

학교 코드로 검색

val officeCode = "B10"
val schoolCode = "7010083"

neis.searchSchoolByCode(officeCode, schoolCode)

학교 학과 정보

List<Major>

val officeCode = "B10"
val schoolCode = "7010083"

neis.getMajors(officeCode, schoolCode)

// School 객체가 있다면
school.getMajors()

학교 급식 정보

List<Meal>

val officeCode = "B10"
val schoolCode = "7010083"

val type = MealType.ALL // 기본값
val date = LocalDate.now()
// val from = LocalDate.of(2022, 11, 21)
// val to = LocalDate.of(2022, 11, 27)

neis.getMeals(officeCode, schoolCode, type, date)

// School 객체가 있다면
school.getMeals(type, date)

학교 시간표 정보

List<Timetable>

import com.github.kimcore.neis.startOfWeek
import com.github.kimcore.neis.endOfWeek

val officeCode = "B10"
val schoolCode = "7010083"
val schoolType = SchoolType.HIGH

val from = startOfWeek()
val to = endOfWeek()
val grade = 1
val classNumber = 1
// val major = "연극영화과"

neis.getTimetable(officeCode, schoolCode, schoolType, from, to, grade, classNumber)

// School 객체가 있다면
school.getTimetable(from, to, grade, classNumber)

API

Class

모든 클래스는 NEISEntity 클래스를 상속받고 있으며, raw 프로퍼티를 통해 원본 JsonObject에 접근할 수 있습니다.

School

School(
    officeCode = "B10",
    officeName = "서울특별시교육청",
    code = "7010083",
    name = "서울고등학교",
    nameEn = "Seoul High School", // Nullable
    type = SchoolType.HIGH,
    location = "서울특별시 서초구 효령로 197",
    businessType = "일반계",
    homepageUrl = "http://seoul.sen.hs.kr"
)

Major

Major(
    officeCode = "B10",
    officeName = "서울특별시교육청",
    schoolCode = "7010083",
    schoolName = "서울고등학교",
    order = "일반계",
    name = "7차일반",
    date = "2022-11-01" // java.time.LocalDate
)

Meal

Meal(
    officeCode = "B10",
    officeName = "서울특별시교육청",
    schoolCode = "7010083",
    schoolName = "서울고등학교",
    type = MealType.LUNCH,
    date = "2020-07-01", // java.time.LocalDate
    content = "쌀밥...",
    origin = "쌀 : 국내산...",
    nutrition = "탄수화물(g) : 189.7...",
    calories = 1093.5
)

Timetable

Timetable(
    officeCode = "B10",
    officeName = "서울특별시교육청",
    schoolCode = "7010083",
    schoolName = "서울고등학교",
    year = 2022,
    semester = 2,
    date = "2022-11-28", // java.time.LocalDate
    order = "일반계",
    major = "7차일반",
    grade = 1,
    classNumber = 1,
    classroom = "1",
    period = 1,
    content = "자율활동"
)

Enum

SchoolType

name text
UNKNOWN 알수없음
ELEMENTARY 초등학교
MIDDLE 중학교
HIGH 고등학교
SPECIAL 특수학교

MealType

ALL 타입은 검색에만 사용되며, 결과에서는 반환되지 않습니다.

name text
ALL 전체
BREAKFAST 조식
LUNCH 중식
DINNER 석식

About

나이스 교육정보 개방 포털의 OpenAPI를 쉽게 사용할 수 있도록 도와주는 라이브러리입니다.

Resources

License

Stars

Watchers

Forks

Languages