Skip to content

API 명세서_Weather API

Yeon Sang Shin edited this page Feb 17, 2021 · 52 revisions

2021.02.17 Region Obj를 DailyWeather에서 분리
2021.02.17 DailyWeatherWithClimate에서 Climate Obj안의 iconId를 climateIconId로 변경
2021.02.17 Date 정보에 연도 추가
2021.01.13 Get Weather By Location, Get Extra Weather에서 204로 응답할 때 body 삭제
2021.01.13 Region 객체의 code 키 이름을 id로 변경
2021.01.12 DailyWeatherForcast api가 DailyWeatherWithClimate 객체 리스트를 반환
2021.01.09 OverviewWeather 객체에서, Region 객체를 DailyWeather 객체 밖으로 분리

Weather API

메소드 경로 설명 구현 여부
#008000 GET ~/weather/overview?lat={latitude}&lon={longitude}&code={code}&date={date} 위치로 날씨 조회
#008000 GET ~/weather/forecast/hourly?code={code}&date={date} 시작 시간 기준 24시간 이후까지의 시간 별 날씨 조회
#008000 GET ~/weather/forecast/daily?code={code}&date={date} 시작 일 기준 7일 이후까지의 일자 별 날씨 조회
#008000 GET ~/weather/daily/extra?code={code}&date={date} 일자의 상세(추가) 날씨 조회
#008000 GET ~/weather/overviews?keyword={keyword}&date={date} 날씨 검색

Get Weather by Location

  • 위치 정보 (위도, 경도, 행정 코드) 를 이용하여 날씨 조회
메소드 경로 설명
#008000 GET ~/weather/overview?lat={latitude}&lon={longitude}&code={code}&date={date} 위치로 날씨 조회

Header

Name Type Description Mandatory
x-access-token string 토큰 Y
Content-Type string 반환받을 타입 Y
x-access-token: {"token"}
Content-Type: application/json

Query String

Name Type Description Mandatory
lat double 위도 정보 N
lon double 경도 정보 N
code long 행정 코드 N
date date 날짜 정보 Y
  • date는 다음의 두 형식 중 하나를 따름
    • YYYY-MM-DD : 시간 정보가 필요 없음 (e.g., 2021-01-05)
    • YYYY-MM-DDTHH : 시간 정보가 필요함 (e.g., 2021-01-05T23)
  • (lat,lon) 또는 code 전송

성공 시 Response Body

{
    "overviewWeather": {
        "region": {
            "code": 123456,
            "name": "경기도 수원시"
        },
        "dailyWeather": {
            "date": {
                "year": 2020,
                "month": 12,
                "day": 31,
                "dayOfWeek": "목요일"
            },
            "temperature": {
                "maxTemp": 4,
                "minTemp": -3
            }
        },
        "hourlyWeather": {
            "time": "오후 5시",
            "temperature": -4,
            "climate": {
                "iconId": 500,
                "description": "조금 흐리지만 따뜻함"
            },
            "pop": 30
        }
    },
    "message": "실시간 날씨 정보 반환 성공"
}
Type Name Description
OverviewWeather? overviewWeather 날씨 정보 개요
- Region region 지역 정보
-- long code 행정 코드
-- string name 지역 이름
- DailyWeather dailyWeather 일자 날씨 정보
-- Date date 일자 정보
--- int year 연도
--- int month
--- int day
--- string dayOfWeek 요일
-- HighLowTemp temperature
--- int maxTemp 최고 온도
--- int minTemp 최저 온도
- HourlyWeather hourlyWeather 시간 날씨 정보
-- string time 현재 시간
-- int temperature 현재 기온
-- Climate climate 기후 정보
--- int iconId 기후 정보 id
--- string description 기후 설명 text
-- int pop 강수 확률
string message 상태 메시지

날씨 조회에 실패한 경우

  • status code를 204로 보낼 것임

Get Hourly Weather Forecast

  • 시작 시간 기준 24시간 이후까지의 시간 별 날씨 조회
메소드 경로 설명
#008000 GET ~/weather/forecast/hourly?code={code}&date={date} 시작 시간 기준 24시간 이후까지의 시간 별 날씨 조회

Header

Name Type Description Mandatory
x-access-token string 토큰 Y
Content-Type string 반환받을 타입 Y
x-access-token: {"token"}
Content-Type: application/json

Query string

Name Type Description Mandatory
code long 행정 코드 Y
date date YYYY-MM-DDTHH (e.g., 2021-01-25T23) Y

성공 시 Response Body

  • hourlyWeatherList 안의 time 형식에 주의!
{
    "hourlyWeatherList": [
        {
            "time": "17시",
            "temperature": -4,
            "climate": {
                "iconId": 16,
                "description" : "조금 흐리지만 따뜻함"
            },
            "pop": 30
        },
        ...
    ],
    "message": "시간 별 날씨 조회 성공"
}
Type Name Description
List<HourlyWeather?> HourlyWeatherList
- HourlyWeather 시간 날씨 정보
-- string time 시간 정보
-- int temperature 온도
-- Climate climate 기후 정보
--- int iconId 기후 id
--- string description 기후 묘사
-- int pop 강수 확률
string message 상태 메시지

Get Daily Weather Forecast

  • 시작 일 기준 7일 이후까지의 일자 별 날씨를 조회한다.
메소드 경로 설명
#008000 GET ~/weather/forecast/daily?code={code}&date={date} 시작 일 기준 7일 이후까지의 일자 별 날씨 조회

Header

Name Type Description Mandatory
x-access-token string 토큰 Y
Content-Type string 반환받을 타입 Y
x-access-token: {"token"}
Content-Type: application/json

Query string

Name Type Description Mandatory
code long 행정 코드 Y
date date YYYY-MM-DD (e.g., 2021-01-25) Y

성공 시 Response Body

{
    "dailyWeatherList": [
        {
             "date": {
                 "year": 2021,
                 "month": 1,
                 "day": 7,
                 "dayOfWeek": "목요일"
             },
             "temperature": {
                 "maxTemp": 4,
                 "minTemp": -3
             },
             "climateIconId": 16
        },
        ...
    ],
    "message": "일자 별 날씨 조회 성공"
}
Type Name Description
List<DailyWeatherWithClimateIconId> dailyWeatherList
- DailyWeatherWithClimateIconId 일 날씨 정보
-- Date date 일자 정보
--- int year 년도
--- int month
--- int dayOfWeek 요일
--- string day
-- HighLowTemp temperature 온도 정보
--- int maxTemp 최고 온도
--- int minTemp 최저 온도
-- int climateIconId 날씨 아이콘 id
string message 상태 메시지

Get Extra Weather

  • 상세 날씨 (강수량, 습도, 풍속) 정보를 조회한다.
메소드 경로 설명
#008000 GET ~/weather/daily/extra?code={code}&date={date} 일자의 상세(추가) 날씨 조회

Header

Name Type Description Mandatory
x-access-token string 토큰 Y
Content-Type string 반환받을 타입 Y
x-access-token: {"token"}
Content-Type: application/json

Query string

Name Type Description Mandatory
code long 행정 코드 Y
date date YYYY-MM-DD (e.g., 2021-01-25) Y

성공 시 Response Body

{ 
    "extraWeather": {
        "rain": {
            "value": 30,
            "rating": 3
        },
        "humidity": {
            "value": 60,
            "rating": 2
        },
        "wind": {
            "value": 3.5,
            "rating": 1
        }
    },
    "message": "상세 날씨 조회 성공"
}
Type Name Description
ExtraWeather? extraWeather 상세 날씨 정보
- Factor<int> rain 강수 정보
-- int value 강수량
-- int rating 강수 정도 (1:적게옴 ~ 5:많이옴)
- Factor<int> humidity 습도 정보
-- int value 습도 값
-- int rating 습한 정도 (1:안습함 ~ 5:많이습함)
- Factor<float> wind 바람 정보
-- float value 풍속 (소수점 한 자리)
-- int rating 바람 정도 (1:안붐 ~ 5:많이붐)

날씨 조회에 실패한 경우

  • status code를 204로 보낼 것임

Search Weather

  • 주소 이름을 통해 검색한다.
메소드 경로 설명
#008000 GET ~/weather/overviews?keyword={keyword}&date={date} 날씨 검색

Header

Name Type Description Mandatory
x-access-token string 토큰 Y
Content-Type string 반환받을 타입 Y
x-access-token: {"token"}
Content-Type: application/json

Query string

Name Type Description Mandatory
keyword string 지역 이름 Y
date date 날짜 정보 Y
  • date는 다음의 두 형식 중 하나를 따름
    • YYYY-MM-DD : 시간 정보가 필요 없음 (e.g., 2021-01-05)
    • YYYY-MM-DDTHH : 시간 정보가 필요함 (e.g., 2021-01-05T23)

성공 시 Response Body

{
    "overviewWeatherList": [
        {
           "region": {
                  "code": 123456,
                  "name": "경기도 수원시"
              },
            "dailyWeather": {
                "date": {
                    "year": 2020,
                    "month": 12,
                    "day": 31,
                    "dayOfWeek": "목요일"
                },
                "temperature": {
                    "maxTemp": 4,
                    "minTemp": -3
                }
            },

           "hourlyWeather": {
               "time": "오후 5시",
               "temperature": 4,
               "climate": {
                   "iconId": 15,
                   "description": "조금 흐리지만 따뜻함"
               },
               "pop": 30
           }
        },
        ...
     ],
    "message": "검색 성공"
}
Type Name Description
List<OverviewWeather>? overviewWeatherList
- OverviewWeather 날씨 개요
-- Region region 지역 정보
--- long code 행정 코드
--- string name 지역 이름
-- DailyWeather dailyWeather 일자별 날씨 정보
--- Date date 날짜 정보
---- int year 연도
---- int month
---- int day
---- string dayOfWeek 요일
--- HighLowTemp temperature
---- int maxTemp 최대 온도
---- int minTemp 최저 온도
-- HourlyWeather hourlyWeather 시간 날씨
--- string time 시간
--- int temperature 기온
--- Climate climate 기후 정보
---- int iconId 기후 정보 id
---- string description 기후 묘사 text
--- int pop 강수 확률
string message 상태 메시지