REST API 문서

API Setting

  • request_url = "https://bablabs.com/openapi/v1" + url
  • API를 정상 사용하시기 위해서는 accesstoken을 발급받으셔야 합니다.
  • accesstoken은 로그인 하신 후, 인증 탭에서 발급 받으실 수 있습니다.
  • 모든 API에는 헤더에 다음과 같이 accesstoken를 추가해서 요청해주셔야 정상 작동합니다.
header {
    Accesstoken: < str >
}

Object

  • result
result {
    status: < str | "ok", "fail" > ,
    message: null or < str >
}
  • campus
campus {
    id: < str > ,        
    name: < str > ,     # 밥대생 서비스에 등록된 캠퍼스 이름입니다.
    alias: < str > ,    # 캠퍼스의 별칭입니다. KAIST의 경우, 한국과학기술원, 카이스트가 별칭으로 등록되어있습니다.
    location: null or < location >
}
  • location
location {
    latitude: < float > ,        
    longitude: < float >
}
  • store
store {
    id: < str > ,
    name: < str > ,
    description: null or < str > ,      # 식당에 대한 소개메세지입니다.
                                        # detail api에서만 보내는 것을 원칙으로 합니다.
    open: null or < bool > ,            # 영업시간을 알 수 없는 경우, null을 보냅니다.
    phones: [ < str > ] ,               # 전화번호 리스트를 보냅니다.
    menus: null or [ < menu > ] ,       # menu object를 리스트 형식으로 보내드립니다.
                                        # detail api에서만 보내는 것을 원칙으로 합니다.
    menu_summary: null or < str > ,     # 어떤 메뉴를 파는 곳인지에 대한 요약입니다.
    menu_description: null or < str >   # menus의 길이가 0인 경우에, 왜 0인지 보내드립니다.
    delivery: {
        description: < str >            # 배달 상세정보를 표시합니다.
    }
    open_hours: null or {               # 영업시간과 관련된 정보입니다. detail api에서만 보내는 것을 원칙으로 합니다.
        mon: < open_hour > ,            
        tue: < open_hour > ,
        wed: < open_hour > ,
        thu: < open_hour > ,
        fri: < open_hour > ,
        sat: < open_hour > ,
        sun: < open_hour > ,
        description: < str >
    }
}
  • menu
menu {
    type: < str | "text", "image" > ,
    date: null or < str | "%Y-%m-%d" ex. "2016-10-31" > , # date가 null인 경우 고정메뉴라는 뜻입니다.
    time: < int | 0:아침, 1:점심, 2:저녁, 3:종일, 4:기타 > ,  
    name: null or < str > ,
    description: < str > ,              # type이 text인 경우 식단 정보를 보내드립니다.
                                          type이 image인 경우, 이미지 url을 보내드립니다.
    price: null or < int >              # 가격정보가 입력되지 않은 경우, null을 보냅니다.
}

APIs

CampusListApi

  • 학식 메뉴 조회가 가능한 캠퍼스 리스트를 보여줍니다.
  • method - GET
  • url - /campuses
  • request
query {
    keyword: null or < str | max 30 >       # 검색할 키워드를 30자 이내로 요청가능합니다.
}
  • response
json {
    result: < result > ,
    campuses: [
        < campus > ,
        ...
    ]
}

CampusDetailApi

  • 캠퍼스 상세 정보를 조회할 수 있는 api 입니다.
  • method - GET
  • url - /campuses/<str: campus_id>
  • request
query {
}
  • response
json {
    result: < result > ,
    campus: < campus >
}

StoreListApi

  • 각 캠퍼스의 식당 리스트를 조회할 수 있는 api 입니다.
  • method - GET
  • url - /campuses/<str: campus_id>/stores
  • request
query {
    type: null or < str | "cafeteria"(default), "campus", "local", "delivery" > ,
    # 기본이 "cafeteria" 요청이라고 가정합니다.
    # cafeteria는 급식제 식당을 의미합니다.
    # campus는 급식제 식당이 아닌 교내 식당을 의미합니다.
    # local은 campus 외부 식당을 의미합니다.
    # delivery는 배달 식당을 의미합니다.
    date: < str | "%Y-%m-%d", "2016-04-02" >
    # 반드시 요청값에 포함해야 합니다. null로 보내시면 안됩니다.
}
  • response
json {
    result: < result > ,
    stores: [ < store > ]
}

StoreDetailApi

  • 식당 상세 정보를 조회하실 수 있습니다. menus 정보가 포함되어 있습니다. 현재 시각을 기준으로 30일 이후의 식단이나, 15일 이전의 식단은 조회할 수 없습니다.
  • method - GET
  • url - /campuses/<str: campus_id>/stores/<str: store_id>
  • request
query {
    date: < str | "%Y-%m-%d", "2016-04-02" >
    # 반드시 요청값에 포함해야 합니다. null로 보내시면 안됩니다.
}
  • response
json {
    result: < result > ,
    store: < store >
}

안드로이드 딥링크

  • 현재 내부 사정으로 안드로이드 딥링크 지원이 중단되었습니다. 빠른 시일 내에 다시 선보일 수 있도록 최선을 다하겠습니다.